java中break和continue源码解析

时间:2021-12-31 14:57:02

在自己学习java语言的过程中,很容易把break和continue的用法混淆。为了便于以后快速查阅及温习,在此特留学习笔记一份。
简述
在任何迭代语句的主体部分,都可以用break和continue控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前迭代,然后退回循环起始处,开始下一次迭代。
源码
下面这个程序向大家展示了break和continue在for和while循环中的例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.mufeng.thefourthchapter;
 
public class BreakAndContinue {
 public static void main(String[] args) {
 for (int i = 0; i < 100; i++) {
  if (i == 74) {// Out of for loop
  break;
  }
 
  if (i % 9 != 0) {// Next iteration
  continue;
  }
  System.out.print(i + " ");
 }
 System.out.println();
 
 int i = 0;
 while (true) {
  i++;
  int j = i * 27;
  if (j == 1269) {// Out of loop
  break;
  }
 
  if (i % 10 != 0) {// Top of loop
  continue;
  }
  System.out.print(i + " ");
 }
 }
 
}

输出结果
01.0 9 18 27 36 45 54 63 72  
02.10 20 30 40  

源码解析
在这个for循环中,i的值永远不会达到100,因为一旦i到达74,break语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需要这样使用break。只要i不能被9整除,continue语句就会使执行过程返回到循环的最开头(这使i值递增)。如果能够整除,则将值显示出来。输出结果之所以显示0,是由于0%9等于0。
最后,可以看到一个“无穷while循环”的情况。然而,循环内部有一个break语句,可中止循环。除此之外,大家还会看到continue语句执行序列移回到循环的开头,而没有去完成continue语句之后的所用内容。(只有在i能被10整除时才打印出值。)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。