public static void main(String[] args) { Scanner input = new Scanner(System.in); // 定义变量存储小明的回答 String answer = ""; // 一圈100米,1000米为10圈,即为循环的次数 for (int i = 0; i < 10; i++) { System.out.println("跑的是第" + (i + 1) + "圈"); System.out.println("还能坚持吗?"); // 获取小明的回答 answer = input.next(); // 判断小明的回答是否为y?如果不是,则放弃,跳出循环 if (!answer.equals("y")) { System.out.println("放弃"); break; } // 循环之后的代码 System.out.println("加油!继续!"); } }该程序运行后的效果如下所示:
跑的是第1圈 还能坚持吗? y 加油!继续! 跑的是第2圈 还能坚持吗? y 加油!继续! 跑的是第3圈 还能坚持吗? n 放弃尽管 for 循环被设计为从 0 执行到 10,但是当小明的回答不是 y 时,break 语句终止了程序的循环,继续执行循环体外的代码,输出“加油!继续!”。
public static void main(String[] args) { // 外循环,循环5次 for (int i = 0; i < 5; i++) { System.out.print("第" + (i + 1) + "次循环:"); // 内循环,设计为循环10次 for (int j = 0; j < 10; j++) { // 判断j是否等于3,如果是,则终止循环 if (j == 3) { break; } System.out.print("内循环的第" + (j + 1) + "次循环\t"); } System.out.println(); } }该程序运行结果如下所示:
第1次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环 第2次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环 第3次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环 第4次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环 第5次循环:内循环的第1次循环 内循环的第2次循环 内循环的第3次循环从程序运行结果来看,在内部循环中的 break 语句仅仅终止了所在的内部循环,外部循环没有受到任何的影响。
public static void main(String[] args) { int score; // 每门课的成绩 int sum = 0; // 成绩之和 boolean con = true; // 记录录入的成绩是否合法 Scanner input = new Scanner(System.in); System.out.println("请输入学生的姓名:"); String name = input.next(); // 获取用户输入的姓名 for (int i = 1; i <= 6; i++) { System.out.println("请输入第" + i + "门课程的成绩:"); score = input.nextInt();// 获取用户输入的成绩 if (score < 0) { // 判断用户输入的成绩是否为负数,如果为负数,终止循环 con = false; break; } sum = sum + score; // 累加求和 } if (con) { System.out.println(name + "的总成绩为:" + sum); } else { System.out.println("抱歉,分数录入错误,请重新录入!"); } }运行程序,当用户录入的分数低于 0 时,则输出“抱歉,分数录入错误,请重新录入!”信息,否则打印学生的总成绩。输出结果如下所示。
请输入学生的姓名: zhangpu 请输入第1门课程的成绩: 100 请输入第2门课程的成绩: 75 请输入第3门课程的成绩: -8 抱歉,分数录入错误,请重新录入!
请输入学生的姓名: zhangpu 请输入第1门课程的成绩: 100 请输入第2门课程的成绩: 68 请输入第3门课程的成绩: 73 请输入第4门课程的成绩: 47 请输入第5门课程的成绩: 99 请输入第6门课程的成绩: 84 zhangpu的总成绩为:471在该程序中,当录入第 3 门课的成绩时,录入的成绩为负数,判断条件“score<0”为 true,执行“con=false”,用 con 来标记录入是否有误。接着执行 break 语句,执行完之后程序并没有继续执行条件语句后面的语句,而是直接退出 for 循环。之后执行下面的条件判断语句,判断 boolean 变量的 con 是否为 true,如果为 true,则打印总成绩;否则打印“抱歉,分数录入错误,请重新录入!”。
break label;label 是标识代码块的标签。当执行这种形式的 break 语句时,控制权被传递出指定的代码块。被加标签的代码块必须包围 break 语句,但是它不需要直接包围 break 的块。也就是说,可以使用一个加标签的 break 语句来退出一系列的嵌套块,但是不能使用 break 语句将控制权传递到不包含 break 语句的代码块。
public class GotoDemo { public static void main(String[] args) { label: for (int i = 0; i < 10; i++) { for (int j = 0; j < 8; j++) { System.out.println(j); if (j % 2 != 0) { break label; } } } } }以上程序的执行结果为:
0 1这里的 label 是标签的名称,可以为 Java 语言中任意合法的标识符。标签语句必须和循环匹配使用,使用时书写在对应的循环语句的上面,标签语句以冒号结束。如果需要中断标签语句对应的循环,可以采用 break 后面跟标签名的方式。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有