C语言switch case怎么执行

2019-07-14 13:29发布

switch(temp)
{
        case a:
                for(i=0;i<8;i++)
                {
                    if(...1...)
                    {
                           temp=b;
                            break;
                    }
                   。。。。代码1
                   。。。。代码2
                }
                if(...2...)
                {
                    ...
                    break;
                }
                break;
        case b:
                ....
               break;
        case c:
                ....
               break;
}
。。。。代码3
。。。。代码4

我有这么几个疑问,在百度没找个称心的解答,所以向坛友请教一下,有这么个疑问:
(1)假如刚开始,另 temp=a,if(...1...)为真;进入switch语句,满足条件,跳入for循环,执行 if(...1...)里面的程序,
          此时遇到break是跳出if语句之后执行代码1还是跳出for循环继续执行if(...2...)呢?
       还是跳出case a 语句执行case b【因为if(...1...)已经赋值给temp】呢 ?
       或者是直接跳出switch执行代码3?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
烈阳异丙醇
1楼-- · 2019-07-14 17:18
第一个break跳出循环体,if直接break就是跳出case了。
代码逻辑存在问题了
UserMen
2楼-- · 2019-07-14 21:05
我觉得是跳出for循环进入if(。。。。2.。。。。)执行,没测试过,个人感觉
梅子74
3楼-- · 2019-07-15 00:09
7762642422d 发表于 2019-3-22 18:28
*** 此时遇到break是跳出if语句之后执行代码1还是跳出for循环继续执行if(...2...)呢?
---跳出for循环继续执行if(...2...)。break是跳出最内层的循环体或case体,不会跳出if等判断语句。

有待验证!
7762642422d
4楼-- · 2019-07-15 01:03
 精彩回答 2  元偷偷看……
Xc_Y
5楼-- · 2019-07-15 06:00
根据用法,break跳出本case语句,请高手指导。
ke3978
6楼-- · 2019-07-15 08:02
break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。

当break语句用于do-while、for、while循环语句中时,可使程序终止循环。

break语句对if-else的条件语句不起作用。

在多层循环中,一个break语句只向外跳一层。

一周热门 更多>