C语言程序修改题。switch语句的每句case语句后为什么不需要加break?求详解

如题所述

break语句通常用在循环语句和开关语句中。 当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。但有时为了使若干个情况都是向下执行相同的语句,会在前面的情况里不加break。如:
switch(m)
{
case 0:
case 1:
case 2:
........ //0,1,2情况圴执行这里的语句

break;

case 3:
break;

}
你提供的程序是用return退出整个函数来达到不形成死循环,带有类似break的作用。即,你的程序是在情况g=0时返回0;在情况g=1及g=2时返回1。不会成为一个死循环而无法退出了。所以借助return不需要break了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-09
return的作用是返回值,也可以看作是一个函数调用的结束,当执行到return语句时,系统会认为这个函数已经执行完了,就直接返回了,不会再执行这个函数的后面的代码
在switch的每个case后面添加break的作用是为了跳出switch,而在这个代码中case的执行语句是return语句,如果符合case,那么就直接return了,也就跳出来switch,所以就可以不用break了,因为break已经没有存在的意义了!本回答被提问者采纳
第2个回答  2015-09-09
系统读到return就会结束当前函数,读到break只是跳出swich而已。你如果加break,fun函数的结果都是 fun(g-1)+fun(g-2)