break与continue

来源:互联网 发布:怎样复制知乎的文字 编辑:程序博客网 时间:2024/06/05 08:23

1、用法解释

1、break可以用在循环for、while、do while内,也可以用在switch内。continue只可以用在循环内部。break和continue不可以出现其它地方,除了上面提到的地方。
2、break用来终止当前循环,跳出当前循环体让循环不在执行。如果有多重循环的话,break只对它所在的那一层循环起作用。break之后的语句不会得到执行,循环将直接终止,无论使用的是for还是while。for的递增语句同样不会得到执行。
3、continue用来停止本次循环,意味着该循环这次执行continue后面的代码将不再执行,直接执行下一次循环。同样continue仅对所在循环起作用,在存在多层循环的情况下。与break不同的是,continue在for循环内使用时,循环体内continue后面的代码虽然不在执行,但是for循环的递增操作依然会被执行。while循环与break一样。

2、示例代码

for(i=0; i<3; i++)    if(i == 1)        break;System.out.println(i);//i=1for(i=0; i<3; i++)    if(i == 1)        continue;System.out.println(i);//i=3i = 1;while(i < 3) { //死循环,不停输出1    System.out.println(i);    if(i == 1)        continue;    i++; //永远不会执行到}

3、标签的使用

多重循环中,可以在每重循环前面添加一个标签标识这个循环,相当于给该重循环取了个名字。break和continue可以根据这个名字来终止或跳过外层循环,而不仅局限于自身所在循环。另外标签仅对循环内的break和continue可见,对其它同级的循环不可见,这同时意味着同级的循环可以取相同的标签名。下面举个例子:

hello: for(int i=0; i<3; i++)//循环1    System.out.println("hello");for(int i=0; i<3; i++)//循环2    break hello;

这是一个错误的示范。循环1被标签hello标识,但是标签hello对循环2不可见。正确的用法如下:

hello: for(int i=0; i<3; i++) {    for(int j=0; j<3; j++) {        if(j == 1)            break;//仅终止内层循环        System.out.println(j);//输出3次0    }}hello: for(int i=0; i<3; i++) {//同名标签合法    //hello: for(int j=0; j<3; j++) {//非法同名标签    for(int j=0; j<3; j++) {        if(j == 1)            break hello;//终止外层循环        System.out.println(j);//输出1次0    }}

continue标签用法与break一样,只是在使用时要比break考虑细致。因为break粗暴的终止当前循环,一般情况下这种逻辑很容易理解。continue仅终止一次循环,用来过滤掉某些情况,所以过滤条件、标签的使用需要仔细考虑。

0 0
原创粉丝点击