[跳出语句]goto、break、return、continue的理解

来源:互联网 发布:网络语bug什么意思 编辑:程序博客网 时间:2024/05/21 15:01

[goto语句]  

语法规则:

goto other_end; //other_end 为标识符     ...     other_end : 

要使用goto语句,必须在希望跳转的语句前面加上语句标签。语句标签就是标识符后面加个冒号。包含这些标签的goto语句可以出现在同一函数中的任何位置。


缺陷:goto语句是一个很危险的语句,很方便的跳转方法使人极容易对这个语句产生依赖,而程序量大了对于这样的语句非常难以维护,使用goto而避免对于程序结构的考虑也是很欠妥的。


使用:在一种情况下,即使是结构良好的程序,使用goto语句也可能非常合适——跳出多层循环的嵌套的循环。因为break只可跳出一层循环,使用goto语句可以立即从深度循环中退出

    while(condition1)    {        while(condition2)        {            while(conditon3)            {                if(some disaster)                                    {                    goto quit;                }            }        }    }quit :

[break语句]

作用:使流程跳到循环体外,接着执行循环体下面的语句。

while语句中的break:在while循环中可使用break语句,用于永久终止循环。在执行完break语句之后,执行流下一条执行的语句就是循环正常结束后应该执行的那条语句。

for(int i = 0;i<10;++i){    while(i % 5 = 0)    {        break;//执行break后将跳出整个循环    }}

switch语句中的break:在switch语句的执行中遇到了break语句,执行流就会立即跳到语句列表的末尾。

switch(command){    case 'A': a();break;    case 'B': b();break;    case 'C': c();break;}
在switch语句中,break语句的实际效果是把语句列表划分成不同的部分。这样,switch语句就能按照更为传统的方式工作。

switch(command){    case 'A': a();break;    case 'B': b();break;    case 'C': c();break;}
最后一个case语句后面加上break语句的用意:由于最后一个break后面不再有任何语句,所以实际来说它是没有意义的。但是作为一个程序员,要有一个良好的编程习惯,在最后一条语句后面加上break防治以防今后还要在后面加入新的语句而忘记在之前的语句后面加上break,更加方便维护。


[return语句]

语法规则:

return expression;//表达式expression是可选的
return语句可以允许从函数体的任何位置返回,并不一定要在函数题的末尾。如果函数不需要调用程序的返回一个值,它就被省略。如果函数执行到函数题的末尾时隐式的返回,那么说明函数没有返回值,这种没有返回值的函数在声明时应该声明函数的类型为void。

通常,表达式的类型就是函数声明的返回类型。只有当编译器可以通过寻常运算转换将表达式的类型转换成正确的类型时,才允许返回类型和函数声明的返回类型不同的表达式。


[continue语句]

作用:有时候不希望中止整个循环的操作,而只希望提前结束本次循环,而接下来执行下次循环。可以使用continue语句。

for(int i = 100;i<=200;++i){    if(n%3 == 0)    {        continue;//若使用continue,则直接结束本次循环转到下次循环    }}


break和continue的区别:

continue只对直接包含它的循环体有效,而switch{}不算循环体;break对直接包含它的for(),while(),switch()有效。


原创粉丝点击