Java break和continue的用法
break 关键字可以用在 for、while、do while 循环语句中,功能是跳出整个语句块,结束当前循环的执行。当然,break 语句也可用在 switch 语句中。
在循环体中使用 break 语句有两种方式:带标签和不带标签。break 语句的语法格式如下:
【实例1】不带标签的 break 语句的用法。
【实例2】 带标签的 break 语句的用法。
在循环体中使用continue语句有两种方式:带标签和不带标签。continue 语句的语法格式如下:
【实例 3】不带标签的 continue 语句的用法。
【实例 4】带标签的 continue 语句的用法。
程序的执行结果为:
在循环体中使用 break 语句有两种方式:带标签和不带标签。break 语句的语法格式如下:
break; // 不带标签 break label; // 带标签,label 是标签名不带标签的 break 语句使程序跳出所在层的循环体,而带标签的 break 语句使程序跳出标签指示的循环体。
【实例1】不带标签的 break 语句的用法。
import static java.lang.Math.sqrt;
public class Test {
public static void main(String[] args) {
// 输出100以内的所有素数
int i;
int j;
int c = 0;
//注释①
for (i = 2; i <= 100; i++) {
for (j = 2; j <= sqrt(i); j++) {
//注释②
if (i % j == 0) {
break;
}
}
if (j > sqrt(i)) {
System.out.printf("%5d", i); // 修正了这里的n%5dn为%5d
c++; // 修正了这里的C + +为c++
if (c % 5 == 0) {
System.out.println(); // 换行
}
}
}
}
}
运行结果为:
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
在上面的程序中,当条件 i%j==0 为 true 时,执行 break 语句,结束注释 ② 处的内层循环,返回注释 ① 处的外层循环中继续执行下一次循环。【实例2】 带标签的 break 语句的用法。
public class Test {
public static void main(String[] args) {
// 添加了标签label
label: for (int i = 0; i < 5; i++) {
for (int j = 3; j > 0; j--) {
System.out.println("i的值:" + i + ", j的值:" + j);
if (i == j) {
break label;
}
}
}
}
}
运行结果为:
i的值:0, j的值:3
i的值:0, j的值:2
i的值:0, j的值:1
i的值:1, j的值:3
i的值:1, j的值:2
i的值:1, j的值:1
continue语句
continue 语句用来结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。在循环体中使用continue语句有两种方式:带标签和不带标签。continue 语句的语法格式如下:
continue; continue label;
【实例 3】不带标签的 continue 语句的用法。
public class Test {
public static void main(String[] args) {
int[] a = new int[10]; // 数组a用来存储被删除的数(以3结尾或3的倍数)
int c = 0; // 计数器,记录被删除数的个数
for (int i = 1; i <= 20; i++) {
// 如果i是3的倍数或者以3结尾
if (i % 3 == 0 || i % 10 == 3) {
// 将满足条件的数(即被删除的数)放入数组a中
a[c] = i;
// 计数器加1
c++;
// 跳过后续打印语句,直接开始下一次循环
continue;
}
// 输出不满足条件的数(即保留的数)
System.out.print(i + " ");
}
System.out.println(); // 换行
// 输出被删除的数
System.out.print("被删除的数为: ");
for (int j = 0; j < c; j++) {
System.out.print(a[j] + " ");
}
System.out.println(); // 换行
}
}
运行结果为:
1 2 4 5 7 8 10 11 14 16 17 19 20
被删除的数为: 3 6 9 12 13 15 18
【实例 4】带标签的 continue 语句的用法。
public class Test {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12}
};
int targetValue = 5; // 要查找的目标值
int i,j;
// 外层循环遍历矩阵的行,标签为outerLoop
outerLoop: for (i = 0; i < matrix.length; i++) {
// 内层循环遍历当前行的列
for (j = 0; j < matrix[i].length; j++) {
// 如果找到目标值,则使用带标签的continue跳过当前行的剩余部分
if (matrix[i][j] == targetValue) {
System.out.println("Found " + targetValue + " in row " + (i + 1) + ", skipping rest of the row.");
continue outerLoop; // 跳转到outerLoop标签处,即外层循环的下一次迭代
}
// 打印当前元素(非目标值)
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
程序中用带标签的 continue 语句来处理一个二维数组,当找到目标值 5 时,会跳过当前行的剩余部分并继续处理下一行。程序的执行结果为:
1 2 3
4 Found 5 in row 2, skipping rest of the row.
7 8 9
10 11 12
ICP备案:
公安联网备案: