Java之路:break、continue和return

1、不带标签break

public class BCR {
	public static void main(String[] args) {
		int i, j;
		for(i = 1; i < 10; i++) {
			for(j = 1; j < 10; j++) {
				if(j%3 == 0)
					break;	// 跳出内层循环
				System.out.println("j = " + j);
			}
			System.out.println("循环中断,跳出内层循环:j = " + j);
			if(i%3 == 0)
				break;	// 跳出外层循环
			System.out.println("*********i = " + i + "**********");
		}
		System.out.println("循环中断,跳出内外循环:i = " + i);
	}
}

【结果】
在这里插入图片描述
break跳出循环,但只能跳出一层循环。

2、带标签break

public class BCR {

	public static void main(String[] args) {
		int i, j, k;
		for(i = 0; i < 2; i++) {
			System.out.println("外层循环:i = " + i);
			loop:	// 标签
			for(j = 0; j < 3; j++) {
				System.out.println("中层循环:j = " + j);
				for(k = 0; k < 10; k++) {
					System.out.println("内层循环:k = " + k);
					break loop;	// 跳出标签
				}
			}
		}
	}
}

【结果】
在这里插入图片描述
【结果分析】
当程序执行到**break loop;**后,跳出中层循环,执行外层循环剩余代码。

3、不带标签continue

作用:结束本次循环。

public class BCR {
	public static void main(String[] args) {
		for(int i = 1; i < 5; i++) {
			if(i == 3)
				continue;
			System.out.println("第" + i + "次循环:i = " + i);
		}
	}
}

【结果】
在这里插入图片描述
i = 3时,执行第三次循环,遇到continue路过本次循环,开始执行下次循环。故,结果中没有第三次循环。

4、带标签continue

public class BCR {
	public static void main(String[] args) {
		int i, j, k;
		for(i = 0; i < 2; i++) {
			System.out.println("外层循环:i = " + i + "*****************");
			loop:
			for(j = 0; j < 3; j++) {
				System.out.println("中层循环:j = " + j);
				for(k = 0; k < 10; k++) {
					System.out.println("内层循环:k = " + k);
					continue loop;
				}
			}
		}
	}
}

【结果】
在这里插入图片描述
【结果分析】
程序的流程在遇到continue之后,立即结束本次循环,跳到标签所在循环层次中,进行下一轮循环。本例中,标签在中层循环,遇到continue后,跳到中层循环处,开始执行下一轮的中层循环。
而在带标签的break循环中,跳到标签后并不再运行剩余的中层循环,而是直接开始运行下一次的外层循环。

类型 作用
不带标签continue 退回最内层循环的开关,并继续执行
带标签continue 到达标签位置,并重新进入紧接在那个标签后面的循环
不带标签break 中断并跳出当前循环
带标签break 中断并跳出标签所指的循环

5、return

将不带标签的break示例最内层的break换成return:

public class BCR {
	public static void main(String[] args) {
		int i, j;
		for(i = 1; i < 10; i++) {
			for(j = 1; j < 10; j++) {
				if(j%3 == 0)
					return;	
				System.out.println("内层循环:j = " + j);
			}
			System.out.println("循环中断,跳出内层循环:j = " + j);
			if(i%3 == 0)
				break;	// 跳出外层循环
			System.out.println("*********i = " + i + "**********");
		}
		System.out.println("循环中断,跳出内外循环:i = " + i);
	}
}

【结果】
在这里插入图片描述
return关键词有两方面的用途:一方面指定一个方法返回什么值,另一方面它会导致当前方法退出,并返回那个值。
如果在返回void方法中没有return语句,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须要有一个return语句。

public class BCR {
	public static int test(int a, int b) {
		if(a > b)
			return 1;	// 退出当前方法,并返回1
		else if(a < b)
			return -1;	// 退出当前方法,并返回-1
		else
			return 0;	// 退出当前方法,并返回0
	}
	public static void main(String[] args) {
		System.out.println(test(10, 5));
		System.out.println(test(5, 10));
		System.out.println(test(5, 5));
	}
}

【结果】
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43555323/article/details/84728075