你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

C语言问题请教 switch case

[复制链接]
流浪的方丈2015 提问时间:2015-1-6 14:17 /
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?

收藏 评论20 发布时间:2015-1-6 14:17

举报

20个回答
damiaa 回答时间:2015-1-6 15:45:00
break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。

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

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

在多层循环中,一个break语句只向外跳一层。
moyanming2013 回答时间:2015-1-6 14:26:06
*** 此时遇到break是跳出if语句之后执行代码1还是跳出for循环继续执行if(...2...)呢?
---跳出for循环继续执行if(...2...)。break是跳出最内层的循环体或case体,不会跳出if等判断语句。
风中的IT 回答时间:2015-1-7 12:59:24
damiaa 发表于 2015-1-6 15:45
break语句通常用在循环语句和开关语句中。
当break用于开关语句switch中时,可使程序跳出switch而执行switc ...

恩,感觉像正解
ataudio 回答时间:2015-1-6 14:31:50
第一个break跳出循环体,if直接break就是跳出case了。
代码逻辑存在问题了
我爱下载 回答时间:2015-1-6 14:35:49
我觉得是跳出for循环进入if(。。。。2.。。。。)执行,没测试过,个人感觉
流浪的方丈2015 回答时间:2015-1-6 14:45:29
moyanming2013 发表于 2015-1-6 14:26
*** 此时遇到break是跳出if语句之后执行代码1还是跳出for循环继续执行if(...2...)呢?
---跳出for循环继续 ...

有待验证!
moyanming2013 回答时间:2015-1-6 14:49:51
嗯,你测试下即可,或者在vc里面快速测试也行的。
AndyYau-268557 回答时间:2015-1-6 15:15:56
根据用法,break跳出本case语句,请高手指导。
damiaa 回答时间:2015-1-6 15:46:54
本帖最后由 damiaa 于 2015-1-7 13:32 编辑

这个时候就跳出for循环。到外面去了。
damiaa 回答时间:2015-1-6 15:47:20
就像if不存在。
那片清茶 回答时间:2015-1-6 15:47:56
好好看一下break放的位置。
我是酱油哥 回答时间:2015-1-6 16:27:19
中断当前循环,应该跳出for循环
boyubeiyu 回答时间:2015-1-7 13:03:07
跳出第一层循环呀,然后执行if(....2...)
wamcncn 回答时间:2015-1-7 13:14:28
一句话,用法错误
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版