break , continue
break在任何循环语句的主体部分,均可用break控制循环流程;break用于强制退出循环,不执行循环中剩余的语句(break语句也在swtich中使用)
continue与用在循环语句体中,用于终止某次循环过程,即跳出循环体中尚未执行的语句,接着进行下一次是否执行循环的判定;
代码案例:break
public class BreakDemo01 { public static void main(String[] args) { int i=0; while(i<100){ System.out.println(i); if(i==30){ break;//强制退出循环;只是退出循环,不是结束整个程序 } i++;//切记,不要忘了迭代变量:用于终止循环 } System.out.println("123");//break只是结束循环,不会结束程序 } }
代码案例:continue
public class ContinueDemo01 { public static void main(String[] args) { // int i=0; while (i<100){//注意布尔表达式:切记不要写成循环 i++; if(i%10==0){ System.out.println(); continue;//不会打印10的倍数,因为跳到下一次循环开始 } System.out.print(i); } } }
关于goto关键字:
Java没有goto,但是在break和continue这2个关键字的身上,我们仍然能看出一些goto的影子:带标签的break和continue;
“标签”是指后面跟一个冒号的标识符;例如:label:
对Java来说,唯一用到标签的地方是在循环语句之前:而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方;
代码案例:打印101--150之间的所有质数:
public class LabelDemo01 { public static void main(String[] args) { //打印101--150之间的所有质数: //质数:是指大于1的自然数中,除了1和它本身以外不再有其他因数的自然数:1,37,51 //只能被1和它本身整除的数,才叫质数 int count=0; //不建议使用 outer:for(int i=101;i<150;i++){//遍历101-150 for(int j=2;j<i/2;j++){// if(i%j==0){ continue outer; } } System.out.println(i+""); } } }