04-break、continue与goto
-
1 package xiaoka.struct; 2 3 public class BreakDemo01 { 4 public static void main(String[] args) { 5 int i = 0; 6 while (i<100){ 7 i++; 8 System.out.println(i); 9 if (i==22){ 10 break; 11 } 12 } 13 System.out.println("我只是跳出循环而已"); 14 } 15 }
-
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环中尚未执行的语句,接着进行下一次是否执行的判定。
1 package xiaoka.struct; 2 3 public class ContinueDemo { 4 public static void main(String[] args) { 5 int i = 0; 6 while (i<100){ 7 i++; 8 if (i%10==0){ 9 System.out.println(); 10 continue; 11 } 12 System.out.println(i); 13 } 14 15 //break在任何循环语句的主体部分,均可用break 控制循环的流程 16 //break 用于强行退出循环,不执行循环中剩余的语句.(break语句也可在switch语句中用到) 17 18 //continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句.接着进行下一次是否执行循环的判定. 19 } 20 }
-
关于goto 关键字
-
goto 关键字很早就在程序设计语言中出现,尽管goto 仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto 。然而,在break 和 continue这两个关键字上,仍然能看出goto 语句的影子---带标签的break 和continue。
-
“标签”是指后面跟一个冒号的标识符,例如:label:
-
对Java来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break 和continue 关键字通常只中断当前循环,但若随标签使用,他们就会中断到存在标签的地方。
1 package xiaoka.struct; 2 3 public class LabelDemo { 4 public static void main(String[] args) { 5 // 打印101-150 之间所有的质数 6 // 质数是指在大于1的自然数中,除了1和他本身之外不再有其他因数的自然数 7 8 int count = 0; 9 10 //不建议使用!!! 11 outer:for (int i=101;i<150;i++){ 12 for (int j=2;j<i/2;j++){ 13 if (i%j==0){ 14 continue outer; 15 } 16 } 17 System.out.print(i+" "); 18 } 19 } 20 }
-
练习
1 package xiaoka.struct;
2
3 public class TestDemo {
4 public static void main(String[] args) {
5 //打印三角形 5行
6
7 for (int i = 1; i <= 5; i++) {
8 for (int j = 5; j >= i; j--) {
9 System.out.print(" ");
10 }
11 for (int j = 1; j <= i; j++) {
12 System.out.print("*");
13 }
14 for (int j = 1; j < i; j++) {
15 System.out.print("*");
16 }
17 System.out.println();
18 }
19
20 //灵活运用debug!!!
21 }
22 }