一、本章目标
- 掌握基本if选择结构
- 掌握逻辑运算符
- 掌握多重if选择结构
- 掌握嵌套if选择结构
二、内容
1、if选择结构
1.1 为什么需要if选择结构
问题:如果张浩的Java考试成绩大于98分,张浩就能获得一个MP4作为奖励
1.2 什么是if选择结构
if选择结构是根据条件判断之后再做处理的一种语法结构。
1.2.1 语法
if ( 条件 ) {
//代码块
}

1.2.2 实例
如果张浩的Java考试成绩大于98分,张浩就能获得一个MP4作为奖励
public class GetPrize {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入张浩的Java成绩: "); // 提示输入Java成绩
int score = input.nextInt(); // 从控制台获取张浩的Java成绩
if (score > 90) { // 判断是否大于90分
System.out.println("老师说:不错,奖励一个MP4!");
}
}
}
1.3 如何使用if选择结构
1.3.1 基本if结构
if
(
条件
)
{
//代码块
}
1.3.2 复杂条件下的if选择结构
- 问题:张浩Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。
- 常用的逻辑运算符
运算符 | 汉语名称 | 表达式 | 说明 | 举例 |
&& | 与、并且 | 条件1&&条件2 | 二个条件为真是,才为真;有一个为假,就为假 | |
|| | 或 | 条件1||条件2 | 二个条件有一个为真,则为真;二个为假,则为假 | |
! | 否 | !条件 | 条件为真,结果为假 |
- 表达写法
- (java>98&&music>80)||(java==100&&music>70)
- (java>98&&music>80||java==100&&music>70)
public class GetPrize2 {
public static void main(String[] args) {
int score1 = 100; // 张浩的Java成绩
int score2 = 72; // 张浩的音乐成绩
if ( ( score1 >98&& score2 > 80 ) //假
|| ( score1 == 100 && score2 > 70 ) //真
){
System.out.println("老师说:不错,奖励一个MP4!");
}
}
}
1.3.3 使用if--else选择结构
- 问题:
如果张浩Java考试成绩大于98分,老师就奖励他一个MP4,否则老师就罚他进行编码
- 语法
if ( 条件 ) {
//代码块1
}else {
//代码块2
}

- 实例
public class SimpleIf {
public static void main(String[] args) {
int score = 91; // 张浩的Java成绩
if (score > 98) {
System.out.println("老师说:不错,奖励一个MP4!");
} else {
System.out.println("老师说:惩罚进行编码!");
}
}
}
1.4 练习:买彩票
1.4.1 需求
- 如果体彩中了500万,我买车、资助希望工程、去欧洲旅游
- 如果没中,我买下一期体彩,继续烧高香
1.4.2 实现
public class IfElseTest {
public static void main(String[] args) {
boolean isSuc = true; //体彩中了500万大奖
if(isSuc){
System.out.println("我买车");
System.out.println("我资助希望工程");
System.out.println("我去欧洲旅游");
}else{
System.out.println("我买下一期体彩");
System.out.println("继续烧高香");
}
}
}
2 技能训练
2.1 实现幸运抽奖
- 需求
抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员
- 效果

- 实现思路
1. 产生随机数2. 从控制台接收一个4位会员号3. 分解获得百位数4. 判断是否是幸运会员
- 提示
1、
产生随机数(0~9)的方法如下:
int random=(int)(Math.random()*10);
2、获得百位上的数
int baiwei = custNo / 100 % 10;
- 实现
public class GoodLuck {
public static void main(String[] args) {
/* 产生随机数 */
int random = (int) (Math.random() * 10);
/* 从控制台接收一个4位会员号 */
System.out.println("我行我素购物管理系统 > 幸运抽奖\n");
System.out.print("请输入4位会员号: ");
Scanner input = new Scanner(System.in);
int custNo = input.nextInt();
/* 分解获得百位 */
int baiwei = custNo / 100 % 10;
/* 判断是否是幸运会员 */
if (baiwei == random) {
System.out.println(custNo + "是幸运客户,获精美Mp3一个。");
} else {
System.out.println(custNo + " 谢谢您的支持!");
}
}
}
2.2 会员信息录入
- 需求
- 录入会员信息:包括会号、会员生日、会员积分
- 判断录入的会员号是否合法:必须是四位整数
- 效果

- 实现
public class AddCust {
public static void main(String[] args) {
System.out.println("我行我素购物管理系统 > 客户信息管理 > 添加客户信息\n");
/*录入会员信息*/
Scanner input = new Scanner(System.in);
System.out.print("请输入会员号(<4位整数>):");
int custNo = input.nextInt();
System.out.print("请输入会员生日(月/日<用两位数表示>):");
String custBirth = input.next();
System.out.print("请输入积分:");
int custScore = input.nextInt();
/*判断会员号有效性*/
if(custNo >= 1000 && custNo <= 9999){
System.out.println("\n已录入的会员信息是: ");
System.out.println(custNo + "\t" + custBirth + "\t" + custScore);
}else{
System.out.println("\n客户号" + custNo + "是无效会员号!");
System.out.println("录入信息失败!");
}
}
}
3 多重选择结构
3.1 为什么使用多重if选择结构
问题:
对学员的结业考试成绩评测
- 成绩>=80 :良好
- 成绩>=60 :中等
- 成绩<60 :差
![]() |
||
![]() |
分析
- 单个if选择结构无法完成
- 多个if选择结构很麻烦
if(score>=80) syso....
if(score>=60&&score< 80)..
if(score<60)....
3.2 什么是多重if选择结构
- 语法
if ( 成绩>=80) {
//代码块1
}
else if (成绩>=60) {
//代码块2
}
...
else {
//代码块3
}

- 示例:使用多重if实现学员的结业考试成绩评测
int score = 70; //考试成绩
if (score >= 80 ) {
System.out.println("良好");
} else if (score >= 60 ) {
System.out.println("中等");
} else {
System.out.println("差");
}
3.3 如何使用多重if选择结构
- 问题:我想买车,买什么车决定于我在银行有多少存款
- 如果我的存款超过500万,我就买凯迪拉克
- 否则,如果我的存款超过100万,我就买帕萨特
- 否则,如果我的存款超过50万,我就买依兰特
- 否则,如果我的存款超过10万,我就买奥托
- 否则,如果我的存款10万以下 ,我买捷安特
- 实现
int money = 52; // 我的存款,单位:万元
if (money >= 500) {
System.out.println("太好了,我可以买凯迪拉克");
} else if (money >= 100) {
System.out.println("不错,我可以买辆帕萨特");
} else if (money >= 50) {
System.out.println("我可以买辆依兰特");
} else if (money >= 10) {
System.out.println("至少我可以买个奥托");
} else {
System.out.println("看来,我只能买个捷安特了");
}
4 嵌套if选择结构
4.1 为什么使用嵌套if选择结构
- 问题:
学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
- 分析
- 判断是否能够进入决赛
- 在确定进入决赛的情况下,判断是进入男子组,还是进入女子组
4.2 嵌套if选择结构
- 语法
if(条件1) {
if(条件2) {
代码块1
} else {
代码块2
}
} else {
代码块3
}

- 示例:使用嵌套if选择结构解决问题6
public class RunningMatch {
public static void main(String[] args) {
System.out.println("请输入比赛成绩:");
Scanner input = new Scanner(System.in);
double score = input.nextDouble();
System.out.println("请输出性别");
String gender = input.next();
if(score<=10){
if(gender.equals("男")){
System.out.println("进入男子组决赛!");
}else if(gender.equals("女")){
System.out.println("进入女子组决赛!");
}
}else{
System.out.println("淘汰!");
}
}
}
5 if结构的书写规范
- 为了使 if 结构更加清晰、避免执行错误,应该把每个 if 或 else 包含的代码块都用大括号括起来
- 相匹配的一对 if 和 else 应该左对齐
- 内层的 if 结构相对于外层的 if 结构要有一定的缩进
6 练习:输入小明的考试成绩,显示所获奖励
需求
- 成绩==100分,爸爸给他买辆车
- 成绩>=90分,妈妈给他买MP4
- 90分>成绩>=60分,妈妈给他买本参考书
- 成绩<60分,什么都不买
实现
public class ScoreTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int score = input.nextInt(); // 接收成绩
if (score == 100) {
System.out.println("他爸爸给他买辆车");
} else if (score >= 90) {
System.out.println("他妈妈给他买MP4");
} else if (score < 90 && score >= 60) {
System.out.println("他妈妈给他买本参考书");
} else {
System.out.println("什么都不买");
}
}
}
三、总结
1、Java中的if选择结构,包括以下形式
- 基本if选择结构:可以处理单一或组合条件的情况
- if-else选择结构:可以处理简单的条件分支情况
- 多重if选择结构:可以处理分段的条件分支情况
- 嵌套if选择结构:可以处理复杂的条件分支情况
2、逻辑运算符
关注我们

良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
