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? |
---跳出for循环继续执行if(...2...)。break是跳出最内层的循环体或case体,不会跳出if等判断语句。
代码逻辑存在问题了
有待验证!
当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式)括号中表达式匹配的case)开始执行,直到switch结构结束。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环。
break语句对if-else的条件语句不起作用。
在多层循环中,一个break语句只向外跳一层。
这个时候就跳出for循环。到外面去了。