前言
Java 使用条件语句和循环语句确定控制流程。
本文的主要内容包含:
- if...else 条件语句
- while 循环
- for 循环
- switch 语句
- 中断控制流程语句
if...else 条件语句
在 Java 中,条件语句的格式为:
if (condition) statement
例如:
public static void main(String[] args) {
int m = 10;
int n = 9;
if (m > n) System.out.println("m 比 n 大");
}
执行上面代码,因为m > n
的结果为true
,所以控制台将打印 m 比 n 大。
如果希望在某个条件为真时执行多条语句,则应该使用块语句将多条语句括起来。
块(即复合语句)是指由一对花括号括起来的若干条简单的 Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。不能在嵌套的两个块中声明同名的变量。
public class ControlFlow {
public static void main(String[] args) {
int m = 10;
int n = 9;
if (m > n) {
System.out.println("m 比 n 大");
System.out.println("n 比 m 小");
}
}
}
当 if 后面的括号中,表达式的值为true
时,就会执行{}
里的语句。
当 if 后面的括号中,表达式的值为false
时,可以在{}
后加 else {}
。例如:
public class ControlFlow {
public static void main(String[] args) {
int m = 10;
int n = 9;
if (m < n) {
System.out.println("m 比 n 小");
} else {
System.out.println("m 比 n 大");
}
}
}
执行上面代码,因为m < n
的结果为false
,所以程序将执行else
后面的花括号里的语句,控制台会打印 m 比 n 大。
当存在多种条件时,还可以使用if...else if...
格式的条件语句。
while 循环
当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。常用的格式为:
while (condition) statement
如果开始循环条件的值就为 false ,则 while 循环体一次也不执行。
如果希望循环体至少循环一次,则应该将检测条件放在最后。使用 do/while 循环语句可以实现这种操作。它的语法格式为:
do statement while (condition)
for 循环
for 循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。
下面的程序将在控制台输出数字 1~10
public static void main(String[] args) {
for (int i=1;i<=10;i++){
System.out.println(i);
}
}
for 循环语句的第 1 部分通常用于对计数器初始化;第 2 部分给出每次新一轮循环执行前要检查的循环条件;第 3 部分指示如何跟新计数器。
Java 还有一种循环结构,可以用来一次处理数组(或者其他类型的元素集合)中的每个元素。这种循环结构叫做“通用 for 循环”(又称为 for each 循环),这是 Java SE 5.0 新增加的一种循环结构。
for each 循环的语法格式为:
for (uariable : collection) statement
定义一个变量 uariable
用于暂存集合中的每一个元素,并执行相应的语句或语句块。
collection
这一集合表达式必须是一个数组或者是一个实现了 Iterable 接口的类对象,例如 ArrayList。
for each 循环相比传统 for 循环的优点
- 更加简洁
- 更不易出错。不必为下标的起始值和终止值而操心。
switch 语句
在处理多个选项时,可以使用 switch 语句。
public static void main(String[] args) {
int i = 3;
switch (i) {
case 1:
System.out.println("i的值为1");
break;
case 2:
System.out.println("i的值为2");
break;
case 3:
System.out.println("i的值为3");
break;
default:
System.out.println("未设置 i 的值");
break;
}
}
switch 语句将与选项值相匹配的 case 标签处开始执行直到遇到 break 语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签,而有 default 子句,则执行 default 子句。
上面程序中,i 的值为 3,所有会执行 case 3 后的语句,遇到 break 语句停止。
注意:如果在 case 分支语句的末尾没有 break 语句,则会接着执行下一个 case 分支语句。
case 标签可以是:
- 类型为 char,byte,short 或 int 的常量表达式
- 枚举常量
- 从 Java SE 7 开始,case 标签还可以是字符串字面量
中断控制流程语句
break:中断全部控制流程
continue:中断当前控制流程,执行下一个控制流程