与任何程序设计语言一样,Java 使用条件语句和循环结构确定控制流程。

控制流程

块作用域

块(即复合语句)是指由一对大括号括起来的若干条简单的Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。例如:

1
2
3
4
5
6
public static void main(String[] args) {
int n;
{
int k ;
}
}

但是 ,不能在嵌套的两个块中声明同名的变量。

条件语句

在Java 中,条件语句的格式为

1
if (condition) statement

这里的条件必须用括号括起来。

与绝大多数程序设计语言一样,Java 常常希望在某个条件为真时执行多条语句。在这种情况下,应该使用块语句(block statement), 形式为

1
2
3
4
{
statement1
statement2
}

例如:

1
2
3
4
if (yourSales >= target){
performance = "Satisfactory"
bonus = 100;
}

当yourSales 大于或等于target时,将执行括号中的所有语句。

循环

当条件为true 时,while 循环执行一条语句(也可以是一个语句块)。一般格式为

1
while(condition) statement

如果开始循环条件的值就为false,则while循环体一次也不执行。

确定循环

for 循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。

for 语句的第1 部分通常用于对计数器初始化;第2 部分给出每次新一轮循环执行前要检测的循环条件;第3 部分指示如何更新计数器。

多重选择:switch 语句

在处理多个选项时,使用if/else 结构显得有些笨拙。Java 有一个与C/C++ 完全一样的switch 语句。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch(choice){
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
default:
...
break;
}

switch 语句将从与选项值相匹配的case 标签处开始执行直到遇到break 语句,或者执行到switchi吾句的结束处为止。如果没有相匹配的case 标签,而有default 子句,就执行这个子句。

case 标签可以是:

  • 类型为char、byte 、short 或int 的常量表达式。
  • 枚举常量。
  • 从Java SE 7 开始,case 标签还可以是字符串字面量。