if选择结构
1. 基本if选择结构
语法
if
(
条件
){? ?
//
如果条件满足,则执行代码块
????????//代码块
}
案例
?
从控制台输入一个整数,如果该数字小于
10
,则输出
10
与该数字的差值。
流程图
代码实现
public class
Example1
{
????????public static
void
main
(
String
[]
args
) {
????????????????Scanner sc
=
new
Scanner
(
System
.
in
);
????????????????System
.
out
.
println
(
"
请输入一个整数:
"
);
????????????????int
number
=
sc
.
nextInt
();
????????????????if
(
number
<
10
){
????????????????????????int
diff
=
10
-
number
;
????????????????????????System
.
out
.
println
(
"10
与该数字的差值是:
"
+
diff
);
????????????????}
????????}
}
2. if-else选择结构
语法
if
(
条件
){? ?
//
如果条件满足,则执行代码块
1
????????//代码块
1
}
else
{? ?
//
否则,执行代码块
2
????????//代码块
2
}
案例
? ????????
从控制台输入一个整数,如果该数字是偶数,则输出输入的数字"
是偶数
"
,否则输出输入的数字
"
是奇数"
。
流程图
代码实现
public class
Example2
{
????????public static
void
main
(
String
[]
args
) {
????????????????Scanner sc
=
new
Scanner
(
System
.
in
);
????????????????System
.
out
.
println
(
"
请输入一个整数:
"
);
????????????????int
number
=
sc
.
nextInt
();
????????????????if
(
number
%
2
==
0
){
????????????????????????System
.
out
.
println
(
"
是偶数
"
);
????????????????}
else
{
????????????????????????System
.
out
.
println
(
"
是奇数
"
);
????????????????}
????????}
}
三元一次运算符(条件 ? 表达式1 : 表达式2)
???
表示的意思是询问前面的条件是否满足,如果满足,则使用表达式
1
。:表示否则,即条件不满足,使用表达式2
public class
Example2
{
????????public static
void
main
(
String
[]
args
) {
????????????????Scanner sc
=
new
Scanner
(
System
.
in
);
????????????????System
.
out
.
println
(
"
请输入一个整数:
"
);
????????????????int
number
=
sc
.
nextInt
();
????????????????// if(number % 2 == 0){
????????????????????????// System.out.println("是偶数");
????????????????// } else {
????????????????????????// System.out.println("是奇数");
????????????????// }
????????????????System
.
out
.
println
((
number
%
2
==
0
)
?
"
是偶数
"
:
"
是奇数
"
);
????????}
}
三元一次运算符执行效率相较于
if-else
选择结构来说较为低下,不建议大家常用
3. 嵌套if选择结构
语法
if
(
条件
1
){
//
如果条件
1
满足,则执行其后大括号中的代码块
????????if
(
条件
2
){
//
在满足条件
1
的基础上再满足条件
2
????????????????//代码块
????????}
else
{
//
该结构可以省略不写,表示其他情况不做任何处理
????????????????//代码块
????????}
}
else
{
//
该结构可以省略不写,表示其他情况不做任何处理
????????if
(
条件
3
){
//
在不满足条件
1
的基础上再满足条件
3
????????????????//代码块
????????}
else
{
//
该结构可以省略不写,表示其他情况不做任何处理
????????????????//代码块
????????}
}
案例
?
在半决赛中,如果取得胜利,则可以进入决赛。否则,输出
"
已被淘汰
"
。如果是男子,则输出
"
进入男子组决赛"
;否则,输出
"
进入女子组决赛
"
。
流程图
代码实现
public class
Example3
{
????????public static
void
main
(
String
[]
args
) {
????????????????Scanner sc
=
new
Scanner
(
System
.
in
);
????????????????System
.
out
.
println
(
"
请输入是否获胜
(Y/N)
:
"
);
????????????????String
win
=
sc
.
next
();
????????????????//比较字符串相同使用字符串的equals
方法
????????????????if
(
"Y"
.
equals
(
win
)){
????????????????????????System
.
out
.
println
(
"
请输入性别:
"
);
????????????????????????String
sex
=
sc
.
next
();
????????????????????????if
(
"
男
"
.
equals
(
sex
)){
????????????????????????System
.
out
.
println
(
"
进入男子组决赛
"
);
????????????????????????}
else
{
????????????????????????????????System
.
out
.
println
(
"
进入女子组决赛
"
);
????????????????????????}
????????????????}
else
{
????????????????????????System
.
out
.
println
(
"
已被淘汰
"
);
????????????????}
????????}
}
4. 多重if选择结构
语法
if
(
条件
1
){
//
如果条件
1
满足,则执行代码块
1
????????//代码块
1
}
else if
(
条件
2
){
//
如果条件
2
满足,则执行代码块
2
。这样的结构可以有多个
????????//代码块
2
}
//else if
结构可能有多个
else
{
//
否则,执行代码块
3
。该结构可以省略不写,表示其他情况不做任何处理
????????//代码块
3
}
案例
?
小明去买了
1
注彩票,如果中了一等奖,则可以领取
500
万;如果中了二等奖,则可以领取
100
万;如果中了三等奖,则可以领取1000
块;如果中了四等奖,则可以领取
10
块;如果中了五等奖,则可以领取5
块;否则,没有奖励。
流程图
代码实现
public class
Example5
{
????????public static
void
main
(
String
[]
args
) {
????????????????Scanner sc
=
new
Scanner
(
System
.
in
);
????????????????System
.
out
.
println
(
"
请输入中奖等级:
"
);
????????????????int
level
=
sc
.
nextInt
();
????????????????if
(
level
==
1
){
????????????????????????System
.
out
.
println
(
"
领取
500
万
"
);
????????????????}
else if
(
level
==
2
){
????????????????????????System
.
out
.
println
(
"
领取
100
万
"
);
????????????????}
else if
(
level
==
3
){
????????????????????????System
.
out
.
println
(
"
领取
1000
块
"
);
????????????????}
else if
(
level
==
4
){
????????????????????????System
.
out
.
println
(
"
领取
10
块
"
);
????????????????}
else if
(
level
==
5
){
????????????????????????System
.
out
.
println
(
"
领取
5
块
"
);
????????????????}
else
{
????????????????????????System
.
out
.
println
(
"
没有奖励
"
);
????????????????}
????????}
}
5. 逻辑短路
逻辑与短路
????????使用逻辑与衔接的多个条件中,只要其中一个条件为假,那么该条件之后的所有条件将得不到执行,从而形成逻辑与短路。
逻辑或短路
????????使用逻辑或衔接的多个条件中,只要其中一个条件为真,那么该条件之后的所有条件将得不到执行,从而形成逻辑或短路。