本章介绍
break语句
continue语句
带标签的break
带标签的continue
break语句
作用:
用于强行退出循环,不执行循环中剩余的语句---结束整个循环
实例:
/**
* 测试循环语句中的break---switch语句中也有break,他们的本质意思一样
* @author Lucifer
*/
public class TestBreak {
public static void main(String arguments[]){
//创建一个计数器
int total = 0;
System.out.println("Begin");
while(true){
total++; //每循环一次计数器+1
int i = (int) Math.round(100 * Math.random());
System.out.println(i);
//当i=88的时候跳出循环
if( i == 88 ){
break;
}
//输出循环的次数
System.out.println("Game over, used" + total + "times");
}
}
}
continue语句
作用:
用于终止某次循环过程---跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断。
注意事项:
-
上面说的式跳过本次循环进行到下一次的 条件判断
-
continue用在while、do...while中,continue语句立刻跳到循环首部、越过了当前循环的其余部分。
-
实例:
-
-
-
continue用在for循环中,跳到for循环的迭代因子部分
实例:
/**
* 测试循环语句中continue
* @author Lucifer
*/
public class TestContinue {
/*
利用Continue语句把100~150之间不能被3整除的数输出,并且每行输出5个
(每行输出5个需要定义计数器)
*/
public static void main(String[] args) {
/*
1.先输出100~150之间的数---for循环
2.找到能被3整除的数,跳过---用到continue的意思就是能被3整除就跳过
3.将结果输出到一行
*/
int count = 0;
for(int i = 100; i <= 150; i++){
//System.out.println(i);
if(i%3 == 0){
continue;
}
System.out.print(i + "、");
count++; //没输出一次数计数器数量+1
if(count%5 == 0){
System.out.print("\n");
count = 0;
}
/*
计数器输出5次就输出换行字符
*/
}
}
}
再讲带标签的break和continue的时候先讲goto
由于不便于流程控制,Java中没有实现C语言那样的goto的跳转
Java中可以起到加标签跳转的功能的是带标签的break和continue语句
什么是标签?
Java中关键词"label"就是标签
使用场景:
-
在循环语句之前设置标签
-
因为break和continue是跳出当前循环或者跳过当前循环而程序中又会存在嵌套循环,所以需要标签
-
break和continue随标签一起使用就会中断到存在标签的地方
-
因为label被限制了使用范围所以label变得灵活了
实例:---不常用
/**
* 测试带标签的Break和Continue
* @author Lucifer
*/
public class TestLabelContinue {
public static void main(String arguments[]){
/*
打印101~150之间所有的质数---只能被1和自身整除的数
1.写一个外循环输出101~150之间所有的数
2.里面加一个内部循环,对数进行判断
*/
outer:for(int i = 101; i <= 150; i++){
for(int j = 2; j < i/2; j++){
if( i%j == 0){
continue outer;
}
/*
这个内部的计算逻辑是用一个内循环数自增去除数本身
j < i/2的意思是如果一个数在自身的一般都不能被整除的时候那么他就是质数(因为超过一半相除必定是小数)
*/
/*
这里有内外两层for循环,如果不给外层for循环加标签在内层写continue的时候会跳过本次循环回到内层循环的条件判断
如果加了标签,continue以后带标签就可以让for循环跳到外层带标签的循环
标签的类似goto的用法九这一种
*/
}
System.out.println(i + " ");
}
}
}