--break语句:结束、退出循环
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("break控制语句前的i:" + i);
if (i == 3) {
System.out.println("break控制语句前");
break;// break结束、退出当前方法体所在的循环
// System.out.println("break控制语句后");//break控制语句结束后退出当前方法所
//在的循环:Unreachable code
}
System.out.println("break控制语句后的i:" + i);// break到i=3时结束、退出了循环
//所以、i=3没有输出执行
}
System.out.println("main方法结束时");// break语句之后还能继续执行
}
}
--continue语句:忽略当前循环,继续下一个循环操作
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo01 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("continue控制语句前的i:" + i);// continue能一直输出到i:9
if (i == 3) {
System.out.println("continue控制语句前");
continue;// continue忽略当前循环,继续下一个循环操作
// System.out.println("continue控制语句后");//Unreachable code:continue控制
// 语句结束后退出当前方法所在的循环 故此执行不到代码
}
System.out.println("continue控制语句后的i:" + i);// continue到i=3时忽略了 结束当
//前i=3的输出语句
}
System.out.println("main方法结束时");// continue语句之后还能继续执行
}
}
-- return语句:结束方法,不再执行剩下的所有操作
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo02 {
public static void main(String[] args) {
for (int n = 1; n <= 10; n++) {
System.out.println("return语句前:" + n);// 能输出1、2、3 但到3就没有继续输出到10
//了 return结束方法体的循环
// n==3,结束方法,return
if (n == 3) {
System.out.println("return控制语句开始前测试");// 能输出
return;// 结束当前方法体
// System.out.println("return控制语句结束测试");//Unreachable code
// cause:return后面不能执行代码
}
System.out.println("return语句后:" + n);// 能输出1和2 但到3就没有输出 因为return
//语句把n=3的return返回了 故此n=3(包括n=3)语句之后不会再输出
}
System.out.println("main方法的结束");//这里也是因为return后都不会执行了
}
}
--label标签语句:
简单的说加上标识符的语句的循环,控制语句加入了控制语句的时候就会返回那个循环中 也就是能双重叠加或者分开使用叠加控制语句
//label标签是结合控制语句一起使用的 用两个控制语句于break和continue,return不适用
//label语法格式: 标签名:
break没加label测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo03 {
public static void main(String[] args) {
// break没加label前
// 结果输出到j=3的时候就不再执行输出语句了 外循环i也不会继续执行3后面的代码了
// 输出结果:
// i:0,j:0 i:0,j:1 i:0,j:2
// i:1,j:0 i:1,j:1 i:1,j:2
// i:2,j:0 i:2,j:1 i:2,j:2
// i:3,j:0 i:3,j:1 i:3,j:2
// i:4,j:0 i:4,j:1 i:4,j:2
// i:5,j:0 i:5,j:1 i:5,j:2
for (int i = 0; i <= 5; i++) {// 【外循环】
for (int j = 0; j <= 5; j++) {// 【内循环】
if (j == 3) {
break;// 退出、结束当前循环体的循环体【内循环】
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}
break加label到外循环测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo04 {
public static void main(String[] args) {
// break加label到外循环
// 加了label到外循环后 执行到j=3就结束、退出循环 又因为有label加外循环也是要结束、退出
// 循环
// 简单来说就是这个测试中 break结束、退出两个循环体 一个if语句的循环 一个是for的外循环
// 输出结果:
// i:0,j:0
// i:0,j:1
// i:0,j:2
label: for (int i = 0; i <= 5; i++) {// 【外循环】
for (int j = 0; j <= 5; j++) {// 【内循环】
if (j == 3) {
break label;// 退出、结束当前循环体的循环体【内循环】
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}
break加label到内循环测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo05 {
public static void main(String[] args) {
/* break加label到内循环
简单来说就是这个测试中 break结束、退出两个循环体 一个if语句的循环 一个是for的内循
环、但又因这两是同一个循环中的
故此break的作用相当于重复使用了
可能有人就会好奇 跟没加label一样呀qwq 嘿嘿这个还是自己思考一下吧qwq
输出结果: */
/* i:0,j:0 i:0,j:1 i:0,j:2
i:1,j:0 i:1,j:1 i:1,j:2
i:2,j:0 i:2,j:1 i:2,j:2
i:3,j:0 i:3,j:1 i:3,j:2
i:4,j:0 i:4,j:1 i:4,j:2
i:5,j:0 i:5,j:1 i:5,j:2 */
for (int i = 0; i <= 5; i++) {// 【外循环】
label://定义一个标签符,你也可以使用别的英文加上:来达到标签符的作用
for (int j = 0; j <= 5; j++) {// 【内循环】
if (j == 3) {
break label;// 退出、结束当前循环体的循环体【内循环】
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}
continue加label的也是一样的 这里我就偷偷懒不写那么详细了就写示例测试 自己思考一下 比较一下 多动动手敲敲代码就懂了qwq
continue没加label测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo06 {
public static void main(String[] args) {
/* 输出结果:
i:0,j:0 i:0,j:1 i:0,j:2 i:0,j:4 i:0,j:5
i:1,j:0 i:1,j:1 i:1,j:2 i:1,j:4 i:1,j:5
i:2,j:0 i:2,j:1 i:2,j:2 i:2,j:4 i:2,j:5
i:3,j:0 i:3,j:1 i:3,j:2 i:3,j:4 i:3,j:5
i:4,j:0 i:4,j:1 i:4,j:2 i:4,j:4 i:4,j:5
i:5,j:0 i:5,j:1 i:5,j:2 i:5,j:4 i:5,j:5*/
for(int i = 0;i<=5;i++) {
for(int j =0;j<=5;j++) {
if (j==3) {
continue;
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}
continue加label到外循环中测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo07 {
public static void main(String[] args) {
/* 输出结果:
i:0,j:0 i:0,j:1 i:0,j:2
i:1,j:0 i:1,j:1 i:1,j:2
i:2,j:0 i:2,j:1 i:2,j:2
i:3,j:0 i:3,j:1 i:3,j:2
i:4,j:0 i:4,j:1 i:4,j:2
i:5,j:0 i:5,j:1 i:5,j:2 */
label:
for(int i = 0;i<=5;i++) {
for(int j =0;j<=5;j++) {
if (j==3) {
continue label;
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}
continue加label到内循环中测试:
/**
* @author Lantzrung
* @date 2022年7月17日
* @Description
*/
public class forDemo08 {
public static void main(String[] args) {
/* 输出结果:
i:0,j:0 i:0,j:1 i:0,j:2 i:0,j:4 i:0,j:5
i:1,j:0 i:1,j:1 i:1,j:2 i:1,j:4 i:1,j:5
i:2,j:0 i:2,j:1 i:2,j:2 i:2,j:4 i:2,j:5
i:3,j:0 i:3,j:1 i:3,j:2 i:3,j:4 i:3,j:5
i:4,j:0 i:4,j:1 i:4,j:2 i:4,j:4 i:4,j:5
i:5,j:0 i:5,j:1 i:5,j:2 i:5,j:4 i:5,j:5*/
for(int i = 0;i<=5;i++) {
label:
for(int j =0;j<=5;j++) {
if (j==3) {
continue label;
}
System.out.printf("i:%d,j:%d", i, j);// 查看循环后的元素
System.out.println();// 换行
}
}
}
}