break
-
break在任何循环语句中的主体部分,均可以用break控制循环流程。break用于强行退出循环,不执行循环中剩余的语句。
-
(break语句也在switch中使用)
package com.xiaoming.struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
System.out.println(i);
if (i==30){
break;
}
}
System.out.println(123); //123 break 跳出循环但不终止程序继续运行到最后
}
}
continue
continue语句用在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。
package com.xiaoming.struct;
public class ContinueDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
if (i % 10 == 0) {
System.out.println();
continue; //跳过终止 输出里没有10的整数倍了
}
System.out.println(i);
}
}
}
break与continue的区别
-
break在任何语句的主体部分,均可以用break控制循环流程。
-
break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
-
continue语句用在循环语句体中,用于终止某次循环的过程,即跳出循环体中尚未执行的语句,接着进行下一次是否执行的判断。
关于goto关键字
goto关键字很早在程序设计语言中出现。尽管goto仍是Java 的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而在break和continue这两个关键字的身上,我们仍可以看出一些goto的影子---带标签break和continue。
"标签"是指后面跟一个冒号的标识符,例如:lable:
对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随标签使用,它们会中断到存在标签的地方。
package com.xiaoming.struct;
public class LeableDemo {
public static void main(String[] args) {
//打印101~150之间所有质数
//质数是指在大于1的自然数中,除了1和它本身以外不存在其他因素的自然数。
int count = 0;
//不建议使用 标签的简单写法 outer: continue outer;
outer:for (int i = 101; i <= 150; i++) {
for(int j = 2;j<i/2;j++){
if(i % j == 0){
continue outer;
}
}
System.out.print(i+" "); // 101 103 107 109 113 127 131 137 139 149
}
}
}
练习 打印三角形
package com.xiaoming.struct;
public class TextDemo {
public static void main(String[] args) {
//打印三角形 5行 1 3 5 7 9
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
如不理解可以通过Debug来观看每一步的值。