Java程序通过控制语句来执行程序流,从而完成一定的任务。程序流时通过若干条语句组成的,语句可以是单一的一条,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制语句有三类:
- 分支结构:if-else,switch
- 迭代结构:while,do-while,for
- 转移语句:break,continue,return
一、分支结构
分支结构是根据假设的条件是否成立,来决定执行什么语句。它的作用是让程序更有选择性。
1、if-else语句
语法如下:
if(condition) statement1; [else statement2;]
语法解释:
condition是布尔表达式,结果为true或false。
statement1和statement2都表示语句块。当condition为true时,执行if后面的语句块;当condition为false时,执行else后面的语句块。
流程图如下:
分支判断逻辑也有较为复杂的,在一个布尔表达式不能完全表示,这时可以采用嵌套分支语句实现,基于嵌套if语句的序列一般结构为if-else-if阶梯
语法结构如下:
if(condition){ statement1; }else if(condition){ statement2; }else if(condition){ statement3; … }else{ statement; }
2、switch-case语句
一个switch语句有一个控制表达式和一个由case标记表述的语句块组成。
语法结构如下:
switch(expression){ case value1:statement1; break; case value2:statement2; break; … case valueN:sstatementN; break; [default:defaultStatement;] }
语法解释:
switch语句把表达式返回值依次与每个case子句中的值比较。如果遇到匹配的值,则执行该case后面的语句块。
表达式expression的返回值类型必须是int、byte、char、short这几种类型之一(JDK7.0及以后的版本,还可以是String类型)
case子句中的值valueN必须是常量,并且与表达式expression的返回值类型一致,而且所有case子句中的值应是不同的
default子句表示case子句中没有声明的其他情况,是可选的
break语句用来在执行完一个case分支后,是程序跳出switch语句,即终止switch语句的执行,而在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时不用break;
二、迭代结构
迭代结构的作用是反复执行一段代码,直到满足终止循环的条件为止。
1、while语句
语法结构如下:
while(condition){ statement; }
语法解释:
while语句计算表达式condition,如果表达式为true,则执行while循环体内的语句,若表达式为false ,则结束循环体,执行循环体后的语句。
流程图如下:
2、do-while语句
用于循环至少执行一次的情形
语句结构如下:
do{ statement; }while(condition);
语法解释:
首先,do-while语句执行一次do语句,然后计算表达式condition,如果表达式为true,则继续执行循环体内的语句;若表达式为false,则结束循环。
流程图如下:
3、for语句
语句结构如下:
for(initialization;condition;update){ statements; }
语法解释:
for语句执行时,首先执行初始化操作(condition),然后判断终止条件表达式(condition)是否满足,如果终止条件满足,则退出循环,否则执行循环体中的语句,接着执行迭代部分(update),完成一次循环。下次循环从判断终止条件开始,根据判断结果进行相应操作。注意,初始化操作(initialization)只在第一次循环时执行。
初始化、终止以及迭代部分都可以为空语句(分号不能省),三者均为空的时候,就相当于一个无限循环。
在初始化部分和迭代部分可以使用逗号语句来进行多个操作。
流程图如下:
三、转移语句
1、break语句
break语句主要有三种作用
- 在switch语句中,用于终止case语句序列,跳出switch语句
- 在循环结构中,用于终止循环语句序列,跳出循环结构
- 与标签语句配合使用从内层循环或内层程序块中退出
当break语句用于for、while、do-while循环语句中时,可使程序终止循环而执行循环后面的语句。通常break语句总是与if语句连在一起,即满足条件时便跳出循环。以for语句为例说明,形式如下:
for(表达式1,表达式2,表达式3){ … if(表达式4) break; … }
意思就是,在执行循环体过程中,若if语句中的表达式成立,则终止循环,去执行循环语句之后的其他语句。
2、continue语句
用于for、while、do-while等循环体中时,常与if条件语句一起使用,用来加速循环,即满足条件时,跳过本次循环剩余的语句,强行检测判断条件以决定是否进行下一次循环。以continue语句用于for语句为例,形式如下:
for(表达式1,表达式2,表达式3){ … if(表达式4)continue; … }
意思就是,在执行循环体过程中,若if语句中的表达式成立,则终止当前迭代,去执行下一次迭代。
3、return语句
return语句通常用在一个方法的最后,以退出当前方法。其主要有两种格式:
- return 表达式
- return
当案由return语句的方法被调用时,执行return语句将从当前方法中退出,返回到调用该方法的语句处。如果执行return语句的第一种格式,将同时返回表达式执行结果;第二种格式执行后不返回任何值,用于方法声明时明确返回类型为void的方法中。
return语句使用说明
- 在一个方法中,允许有多个return语句,但每次调用方法时只可能有一个return语句被执行,因此方法的执行结果是唯一的
- return语句返回值的类型和方法声明中定义的类型应保持一致。当两者不一致时,以方法定义的类型为准,自动进行类型转换,如果无法强制转换则将出错
- 如果方法定义的类型为void,则在方法中可省略return语句