跳到主要内容

10.1 条件语句

条件语句是根据条件来执行特定分支的代码。在Java语言中有两种条件语句,if语句和switch语句。

if语句

当满足if后面跟着一个布尔表达式,当布尔表达式为true时,执行if分支的代码。

public static void main(String[] args) {
int a = 12;
int b = 45;

int max = 0;

if (a > b) {
max = a;
}
}

if分支后面还可以跟着一个else分支,当if后面的布尔表达式为false时,将执行else分之中的代码。

public static void main(String[] args) {
int a = 12;
int b = 45;

int max = 0;

if (a > b) {
max = a;
} else {
max = b;
}
}

如果需要判断多个条件时,if分支后也可以跟着多个条件。

public static void main(String[] args) {
int score = 90;

if (score >= 85) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else if (score >= 50) {
System.out.println("争取及格");
} else {
System.out.println("不及格");
}
}

提示

else if属于可选条件,如果使用它,那么它必须跟在if分支后面。

else分支也是可选条件,如果使用它,那么它必须在if分支或者else if分支最后,只有当不满足上述所有条件时,才会执行else分支的代码。

switch语句

switch语句用来做值匹配,当匹配到值时,执行该分支的代码。

public static void main(String[] args) {
int week = 1;

switch (week) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期七");
break;
default:
System.out.println("都不匹配");
}
}

在使用时要注意,在目前Java8版本中,switch支持的数据类型有,byte、short、int、char、及对应的包装类、String、Enum类型。

break关键字用来中断执行,如果分支结中没有break关键字,当满足条件后,会继续执行后面case中的代码,直至遇到break或者switch结束。

那么,思考下下面这段代码会输出什么结果?

public static void main(String[] args) {
char c = 'A';

switch (c) {
case 'A':
System.out.println("A");
case 'B':
case 'C':
System.out.println("B or C");
default:
System.out.println("other");
}
}