ndxg.net
当前位置:首页 >> switCh CAsE不加BrEAk >>

switCh CAsE不加BrEAk

switch case语句犯得错误:会犯这种错误,都是基础不牢固导致的.但是这样的错误却花费了我数小时去debug.想来真是很让人郁闷.看一段代码:(不想看代码直接看后面总结) private void arrange() { switch (direction) { case 'U':case'R':case'

这样的原因是,有时几种情况需要相同处理,比如:a=1,2,3时要执行a=2,a=0时执行语句a=1,否则执行语句a=3,则程序可以如下:switch ( a ) { case 0: a=1; break; case 1: case 2: case 3: a=2; break; default: a=3; break; }

不加 break,程序继续按顺序执行,加上 break ,运行到 break 语句时,跳出 switch 语句块.

表示几个case共用一条/组语句.即它与下面离它最近那个有语句的case使用相同的语句.case 1:case 2:case 3: printf("123"); break; 则不论1/2/3都输出123

加break就跳出不运行下面的case了,如果不加就一直运行到有break

switch语句后不加break,那么代码会一直顺序执行下去(忽略后面的case条件判断),直到break或是end语句

用 “邪恶的” goto 写一段类似的程序可能会帮助理解 #include <stdio.h>int main() { goto b; printf("a"); b: printf("b"); c: printf("c"); printf("d"); return 0;}在跳到b之后程序继续向下执行,标号c对程序的执行没有影响

return的作用是返回值,也可以看作是一个函数调用的结束,当执行到return语句时,系统会认为这个函数已经执行完了,就直接返回了,不会再执行这个函数的后面的代码在switch的每个case后面添加break的作用是为了跳出switch,而在这个代码中case的执行语句是return语句,如果符合case,那么就直接return了,也就跳出来switch,所以就可以不用break了,因为break已经没有存在的意义了!

如果程序在做swtich中的case的时候 ,么有遇到break,则程序会继续往下面走,也就是会走2个case,一直走到遇到break或者是switch走完为止

问:在c语言里switch 后不加break会是什么结果?答:顺序执行,直到遇到break;return; 或switch 结束的大括号. 另外有些函数也会直接结束程序或者改变程序的执行流程.

sytn.net | zxqt.net | msww.net | ltww.net | gmcy.net | 网站首页 | 网站地图
All rights reserved Powered by www.ndxg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com