(二)Java控制执行流程

一、块作用域

由一对花括号括起来的若干条简单的Java语句构成一个基本的块作用域,一个块中也可以存在一个内部的块。

二、条件判断

1、if 判断

(1)、if ( boolean-exp ) { statement }

boolean-exp为true执行这个块中的statement,否则不执行,直接跳过。

(2)、if ( boolean-exp ) { statement1 } else { statement2 }

boolean-exp为true执行 statement1语句块,否则执行 statement2语句块。

(3)、if ( boolean-exp1 ) { statement1 } else if ( boolean-exp2 ) { statement2 }... else if( boolean-exp-n ) { statement-n } else { statement-final }

boolean-exp1为true执行statement1语句块,跳过后面的条件判断和语句块; 若boolean-exp1为false,boolean-exp2为true执行statement2语句块,跳过后面的条件判断和语句块;以此类推。如果所有的if后的布尔表达式都为false,则执行最后的statement-final语句块,没有else语句块则不执行任何语句。

2、多重选择 switch 语句

switch( 表达式 ){case 表达式1:语句1;case表达式2:语句2;...;case表达式n:语句n;default:语句n+1;}

表达式与表达式n匹配时,执行表达式n,和所有的case后面的表达式都不匹配时,执行default后的默认语句。默认每个case的表达式都判断一次是否匹配。可以在表达式对应语句后面使用break;执行到break语句可以跳出这个switch结构,不再执行这个switch结构中break后面的语句。

三、循环迭代

1、while 循环:while ( boolean-exp ) { statement }

先判断布尔表达式是否为true,如果为true,执行statement语句并进入下一次循环,否则退出这个循环体。每次循环先判断布尔表达式的值,布尔表达式为true后再执行statement语句。

2、do while 循环:do { statement } while (boolean-exp)

先执行statement语句块,再判断布尔表达式是否为true,如果为true,并进入下一次循环,否则退出这个循环体。每次循环先执行statement语句块,再判断布尔表达式的值。

3、for 循环: for (初始化语句;布尔表达式;步进语句) { statement }

初始化语句先执行(这个初始化语句只会执行一次;后面的循环迭代中不再初始化),再判断布尔表达式是否为true,为true则执行statement循环体和步进语句并进入下一次循环,为false时退出循环。

4、forecah循环:for(变量类型 变量 : 变量元素集合) { statement }

将集合中的每一个元素依次 赋值给变量 并执行一次statement语句块。

5、循环跳出中断语句

(1)、break:跳出break这层循环块,不执行循环后面语句,终止循环。

(2)、continue:跳出本次循环,不再执行循环体后面的语句,(for循环迭代先执行步进语句)进行下一轮循环判断。

(3)、break标签和continue标签:

break标签:标签只能用在 break + 标签名 所在的循环块或所在的循环块的外部循环块之前。 如 label: for () { break lebel; } 或者 label: for (){ for () { break lebel;} }

执行 break label;直接中断循环并跳出到 label:不再执行lael后的循环体,终止了循环。主要用来中断多层嵌套循环,而break语句只能中断break语句所在的这层循环体的循环迭代。

代码示例与输出结果:

![]()![]()```
public static void main(String[] args) {
label:
for(int i=1;i<5;i=i+1){
for(int j=1;j<5;j++) {
System.out.println("正在执行外层循环第 "+i+" 次迭代" + " 内层循环第 "+j+" 次迭代");
break label;
}
}
}


View Code

![]()

continue标签:标签只能用在 continue+ 标签名 所在的循环块或所在的循环块的外部循环块之前。 如 label: for () { continue lebel; } 或者 label: for (){ for () { continue lebel;} }

执行 continue label;直接中断循环并跳出到 &quot;label:&quot; 并对 &quot;label:&quot; 下面的循环体直接进行下一次迭代。主要用来退出内层循环,并直接对外层循环进行迭代。 而continue语句只能退出continue语句所在的这层循环体,对这层循环体进行下一次迭代。

代码示例与输出结果:

![]()![]()```
1  public static void main(String[] args) {
2        label:
3        for(int i=1;i&lt;5;i=i+1){
4            for(int j=1;j&lt;5;j++) {
5                System.out.println(&quot;正在执行外层循环第 &quot;+i+&quot; 次迭代&quot; + &quot;  内层循环第 &quot;+j+&quot; 次迭代&quot;);
6                continue label;
7            }
8        }
9     }

View Code

![]()

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。