break continue
break
-
break在任何循环语句中的主体部分,均可用break控制循环的流程。break用于强行跳出循环,不执行循环中的剩余语句。(之前讲过,break也可以在swtich语句中使用)
-
语法:
while(布尔表达式){ break; } for(;;){ // 代码语句 break; } switch(布尔表达式){ case a : // 代码语句 // ... ... case x : break; default: // 代码语句 }
-
一般来说,break不会单独使用,它通常伴随着一些条件判断语句出现,比如if语句等
例如:
int i = 0; while(true){ // 根据之前学过的while,我们可以知道此处的while循环是个死循环 i++; // 每次循环i自增1 if(i==10){ // 当i=10时,执行break语句跳出循环 break; // break语句是跳出死循环的关键语句 } System.out.println(i); // 打印每轮循环i的值 }
演示:
1 2 3 4 5 6 7 8 9 // 没有打印到10,这是因为在i=10时就跳出循环了,打印语句在break语句后面,所以没有被执行
continue
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
-
语法:
while(布尔表达式){ continue; }
-
continue与break一样,一般是结合其它条件判断语句使用的,不单独使用
例如:
for (int i = 0; i < 10; i++) { // 这是一个从0到9的循环 if(i%2!=0){ // 当i为奇数时,执行continue语句 continue; // 当该语句被执行时,此次循环剩余部分语句将会被跳过,直接进行下一轮循环的条件判断 } // 如果不受continue语句影响,此语句每轮循环都会被执行 System.out.println(i); }
演示:
0 2 4 6 8
从演示结果我们可以看出,本应该从0到9的打印结果变成了没有奇数的打印结果,这是因为if条件判断是i为奇数,当i为奇数时执行的continue语句跳过了奇数的打印过程,致使最终的打印结果中不含奇数
关于goto关键字
// 不需要理解,不需要掌握,知道goto存在和标签的写法就行,想具体学习就上网自学吧
- goto 关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用,Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子——带标签的break和continue。
- “标签”是指后面跟一个冒号的标识符,例如:label:
- 对于Java来说,唯一用到标签的地方就是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到有标签的地方。