标签:语句 控制 循环体 Java continue 标签 break 循环
控制循环的跳转需要用到 break 和 continue 两个关键字,break 语句是中断循环,continue 语句是执行下一次循环。
创建BreakTest类,循环输出1~20的偶数值,在遇到第一个偶数时,使用
break 语句结束循环:
public class BreakTest {
public static void main(String[] args) {
for(int i = 1;i < 20;i++) {
if(i%2 == 0) { //如果i是偶数
System.out.println(i); //输出i'的值
break; //结束循环
}
}
System.out.println("---end---"); //结束时输出一行文字
}
}
循环嵌套情况下,break 语句将只会使程序流程跳出包含它的最内层的循环结构,即只跳出一层循环。
如果想让 break 跳出外层循环,Java 提供了“标签”的功能:
标签名:循环体{
break 标签名;
}
标签名:任意标识符
循环体:任意循环语句
break 标签名:break 跳出指定的循环体,此循环体的标签名必须与 break 的标签名一致
带有标签的 break 可以指定跳出的循环,这个循环可以是内层循环,也可以是外层循环。
创建BreakInsideNested类,在该类中写两层 for 循环,第一层 for 语句循环 3 次,第二层 for 语句循环 5 次。当第二层 for 语句循环至第 4 次时,强行用 break 中断循环。输出程序执行时外层循环和内层循环各循环了多少次:
public class BreakInsideNested {
public static void main(String[] args) {
for(int i = 1;i <= 3;i++) { //外层循环
for(int j = 1;j <= 5;j++) { //内层循环
if(j == 4) { //内层循环至第4次时就结束
break;
}
System.out.println("i=" + i + "j=" + j);
}
}
}
}
输出:
i=1j=1
i=1j=2
i=1j=3
i=2j=1
i=2j=2
i=2j=3
i=3j=1
i=3j=2
i=3j=3
从运行结果可以看出:
1)循环中的 if 语句判断:如果 j 等于 4 时,执行 break 语句,则中断了内层的循环,输出的 j 值最大到 3 为止;
2)外层的循环没有受到影响,输出的 i 值最大为 3,正是 for 循环设定的最大值;
修改代码,给外层循环添加一个名为 Loop 的标签,让内层循环结束 Loop:
public class BreakInsideNested {
public static void main(String[] args) {
Loop:for(int i = 1;i <= 3;i++) { //外层循环,添加了标签
for(int j = 1;j <= 5;j++) { //内层循环
if(j == 4) { //内层循环至第4次时就结束
break Loop; //结束指定位置的循环
}
System.out.println("i=" + i + "j=" + j);
}
}
}
}
输出:
i=1j=1
i=1j=2
i=1j=3
当 j 的值等于 4 时,直接结束外层循环,i 的值不再增加。
continue 语句
continue 语句不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。
创建ContinueTest类,编写 for 循环从 1 循环至 20,如果当前循环的次数为偶数,则使用 continue 语句跳过循环:
public class ContinueTest {
public static void main(String[] args) {
for(int i = 1;i <= 20;i++) {
if(i % 2 == 0) { //如果 i 是偶数
continue; //跳到下一循环
}
System.out.println(i); //输出 i 的值
}
}
}
输出:
1
3
5
7
9
11
13
15
17
19
与 break 一样,continue 也支持标签功能:
标签名:循环体{
continue 标签名;
}
标签名:任意标识符
循环体:任意循环语句
continue 标签名:continue 跳出指定的循环体,此循环体的标签名必须与 continue 的标签名一致.
标签:语句,控制,循环体,Java,continue,标签,break,循环 来源: https://www.cnblogs.com/ditiebuhaoxian/p/16479582.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。