控制执行流程
在Java中,涉及的关键字包括if-else、while、do-while、for、return、break 以及选择语句switch。然而,Java并不支持goto语句(该语句引起许多反对意见,但它仍是解决某些特殊问题的最便利的方法)。在Java中,仍然可以进行类似goto那样的跳转,但比起典型的goto,有了很多限制。
4.1 true和false
所有条件语句都利用条件表达式的真假来决定执行路径。
4.2 if-else
public class IfElse {
static void test(int testval, int target) {
if (testval > target) {
System.out.println("1");
} else if (testval < target) {
System.out.println("-1");
} else {
System.out.println("0");
}
}
public static void main(String[] args) {
test(10, 5);
test(5, 10);
test(5, 5);
}
}
布尔表达式必须产生布尔结果。
4.3 迭代
while、do-while和for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制作用的布尔表达式( boolean expression)得到“假”的结果为止。
while(boolean-expression)
statement
do
statement
while(boolean-expression);
while和do-while唯一的区别就是do-while中的语句(statement)至少会执行一次,即便表达式第一次就被计算为false。
4.4 ForEach语法
for(Obj obj: list) 用于循环数组与容器。
4.5 return
return关键词有两方面的用处:一方面指定方法返回值,另一方面它会导致当前方法退出,并返回那个值。
4.6 break和continue
beak用于强制退出循环,不再执行循环中剩余语句。
continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
无穷循环:while(true) 无穷循环的第二种形式是for(;;)。编译器将while(true)与for(;;)看作是同一回事。
4.8 switch语句
switch语句可以从一系列的代码中选择一段执行。
switch (key) {
case value:
break;
default:
break;
}
- 能用于switch判断的类型有:byte、short、int、char(JDK1.6),还有枚举类型,但是在JDK1.7后添加了对String类型的判断
- case语句中少写了break,编译不会报错,但是会一直执行之后所有case条件下的语句而不再判断,直到default语句
- 若果没有符合条件的case就执行default下的代码块,default并不是必须的,也可以不写