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后面的语句块。

流程图如下:

java的控制结构 java语句控制结构_迭代

分支判断逻辑也有较为复杂的,在一个布尔表达式不能完全表示,这时可以采用嵌套分支语句实现,基于嵌套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 ,则结束循环体,执行循环体后的语句。

流程图如下:

java的控制结构 java语句控制结构_迭代_02

2、do-while语句

用于循环至少执行一次的情形

语句结构如下:

do{
statement;
}while(condition);

语法解释:

首先,do-while语句执行一次do语句,然后计算表达式condition,如果表达式为true,则继续执行循环体内的语句;若表达式为false,则结束循环。

流程图如下:

java的控制结构 java语句控制结构_switch语句_03

3、for语句

语句结构如下:

for(initialization;condition;update){
statements;
}

语法解释:

for语句执行时,首先执行初始化操作(condition),然后判断终止条件表达式(condition)是否满足,如果终止条件满足,则退出循环,否则执行循环体中的语句,接着执行迭代部分(update),完成一次循环。下次循环从判断终止条件开始,根据判断结果进行相应操作。注意,初始化操作(initialization)只在第一次循环时执行。

初始化、终止以及迭代部分都可以为空语句(分号不能省),三者均为空的时候,就相当于一个无限循环。

在初始化部分和迭代部分可以使用逗号语句来进行多个操作。

流程图如下:

java的控制结构 java语句控制结构_while语句_04

三、转移语句

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语句