程序是自上而下,按顺序执行的,遇到根据不同的条件执行不同的代码时,就要使用选择结构。Java中有两种选择结构:
- if语句
- switch语句
两者的区别:
if语句多用于范围的条件判断,判断一个变量在不在某个范围;而switch语句多用于等值的条件判断,判断一个变量与一系列值中某个值是否相等
if语句
if语句有四种不同的形式:
- if
- if-else
- 多重if-else
- 嵌套if-else
if
语法:如果表达式结果为true,执行语句;如果表达式结果为false,则直接跳过语句。
if(表达式){
语句;
}
示例:
public class Demo {
public static void main(String[] args) {
int age = 30;
if(age >= 18){
System.out.println("已经成年了");
}
}
}
if-else
语法:如果表达式结果为true,执行语句1;如果表达式结果为false,执行语句2。
if(表达式){
语句1;
}else{
语句2;
}
示例:
public class Demo {
public static void main(String[] args) {
int age = 10;
if(age >= 18){
System.out.println("已经成年了");
}else{
System.out.println("还未成年");
}
}
}
多重if-else
语法:
如果表达式1结果为true,执行语句1;
如果表达式1结果为false,则判断表达式2;
如果表达式2结果为true,执行语句2,表达式2结果为false,执行语句3。
if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else{
语句3;
}
示例:
public class Demo {
public static void main(String[] args) {
int age = 10;
if(age >= 60){
System.out.println("老人");
}else if(age >= 18){
System.out.println("成年人");
}else{
System.out.println("未成年");
}
}
}
嵌套if-else
语法:
如果表达式1结果为true,则判断表达式2;
如果表达式2结果为true,执行语句1,表达式2结果为false,执行语句2。
如果表达式1结果为false,则判断表达式3;
如果表达式3结果为true,执行语句3,表达式3结果为false,执行语句4。
if(表达式1){
if(表达式2){
语句1;
}else{
语句2;
}
}else{
if(表达式3){
语句3;
}else{
语句4;
}
}
示例:
public class Demo {
public static void main(String[] args) {
int age = 10;
int health = 10;
if(age >= 18){
if(health > 60){
System.out.println("健康的成年人");
}else{
System.out.println("生病的成年人");
}
}else{
if(health > 60){
System.out.println("健康的小孩");
}else{
System.out.println("生病的小孩");
}
}
}
}
switch语句
switch语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
语法:
计算表达式的值,依次与case常量比较;
如果表达式结果与某个case的常量匹配,则执行该case下的语句;
如果表达式结果与所有case都不匹配,则执行defalut下的语句;
如果没有break语句,程序将继续向下执行,直到break或switch语句结束。
switch(表达式){
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
......
default:
语句;
break;
}
示例:
public class Demo {
public static void main(String[] args) {
int day = 2;
switch (day) {
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("没有这一天");
break;
}
}
}
网友评论