Java基础复习之选择结构使用思路
Java基础复习之选择结构使用思路
目录
目录
一、Java提供的三种选择结构
if
、if ... else
、if ... else if ... else
- 三元运算符
switch ... case
、switch ... case ... default
二、三种选择结构的使用结构
如下condition
是指所有返回值为boolean
(布尔型)的语句均可;
(一)关于if ... else
的三种使用结构
if (condition) {
// 条件为true时执行的代码块
}
if (condition) {
// 条件为true时执行的代码块
} else {
// 条件为false时要执行的代码块
}
if (condition1) {
// 条件1为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
} else if (condition2) {
// 条件1为false,条件2为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
} else if (condition3) {
// 条件1、2为false,条件3为true,则要执行的代码块,不管后续条件是否为true,后续代码不在执行。
// ...
} else {
// 上述条件均为false时要执行的代码块,不需要else也可以直接去掉,允许没有else的结构。
}
(二)三元运算符
三元运算符使用的主要目的是简化if ... else
结构。
variable = (condition) ? expressionTrue : expressionFalse;
// 上下两者是等价的。
if (condition) {
// expressionTrue
} else {
// expressionFalse
}
举例:
int z = 10;
boolean a = z < 30 ? true : false;
System.out.println(a);
打印结果为
true
知识点:三元运算符可以多层嵌套。
variable = (condition) ? (condition) ? expressionTrue : expressionFalse : expressionFalse;
int z = 10;
boolean b = z < 5 ? true : (z < 30 ? true : false);
System.out.println(b);
打印结果为
true
(思考一下为什么?)
知识点:三元运算符有返回结果,且expressionTrue
、expressionFalse
的返回结果类型要相同。错误举例如下:
知识点:三元运算符有返回结果,且一定要被接收或用到。
知识点:三元运算符的expressionTrue
、expressionFalse
仅只能是一行代码,且两者该行代码的返回值要相同。
三元运算符缺点:
使用三元运算符代码的可读性有所降低,三元运算符相比if ... else
结构使用局限性较大。
(三)关于switch ... case
的两种使用结构
使用switch + break
语句从多个要执行的代码块中选择一个执行。
switch(expression) {
case x:
// 待执行代码块
break;
case y:
// 待执行代码块
break;
case z:
// 待执行代码块
break;
}
switch(expression) {
case x:
// 待执行代码块
break;
case y:
// 待执行代码块
break;
default:
// 待执行代码块
}
工作原理:
switch
表达式计算一次case
将表达式的值与每种情况的值进行比较- 如果存在匹配项,则执行关联的代码块
break
和default
关键字是可选的
举例:
int day = 4;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
}
// 输出 "Thursday" (day 4)
注意:不写break
,会存在case
穿透问题。
default
关键字指定在没有大小写匹配时默认要运行的一些代码:
int day = 4;
switch (day) {
case 6:
System.out.println("Today is Saturday");
break;
case 7:
System.out.println("Today is Sunday");
break;
default:
System.out.println("Looking forward to the Weekend");
}
// 输出 "Looking forward to the Weekend"
三、选择结构使用思路
理论上if-else
选择结构和switch
选择结构是可以等价转换的,但是其各自都有各自更易的使用场景。
当带判断条件是某一个连续的值范围时,例如:2 <= x <= 5
内的值,常常选择if-else
选择结构。
当带判断条件是某一个间断已知的值范围时,例如:2,3,4,5
内的确定值,常常选择switch
选择结构。