break和continue都是用来改变控制流程的,经常出现在while,do/while,switch和for循环语句当中。
break语句在一个循环结构中出现时,会立即导致从那个结构中退出,在那个结构之后的头一条语句上继续执行。
若,break用在switch语句中,则调过switch结构的剩余部分。这就是为什么我们在用switch结构时,基本都是
case:~~~~~~;break;的样子。
continue语句用在一个循环结构中时,会调过本次循环的剩余部分而继续执行下一次循环,但是不能完全退出循环
结构。
break语句只能跳出自己所在的循环体,当出现循环嵌套的时候,我们需要使用带标号的break,这样无论多少层循环
都可以跳出来;用法如下:
~~~~~~~~~;
stop:{ for(int row=1 ; row<10; row++){
~~~~~~~~;
for(int column=1 ; column<10;column++){
~~~~~~~~;
breakstop;
~~~~~~~~;}
}
}
那么此时的breakstop就可以跳出两层的循环结构。
同样有带标号的continue语句,当带标号的continue语句执行后,会跳出结构体中的剩余部分和无论多少层封闭循环,
循环继续测试在continue语句执行后立即执行。用法如下:
~~~~~~~~~;
nextrow:{ for (int row=1; row<=5;row++){
~~~~~~~~;
for(int column=1;column<=10;column++) {
if(column>row)
continue newtrow;
~~~~~~~;
~~~~~~~;}
}
}
其中,当continue nextrow执行后,程序不仅跳过了continue nextrow后面的语句,同时跳过了内层for循环的剩余循环,
直接回到了标号处的for(外层for循环)循环继续测试条件,个人感觉此时的continue nextrow 的作用相当于break。好
今天就学习到这里
;