第4篇:如果...那么------让程序做选择
作者: 李金雨
联系方式: wbtm2718@qq.com
目标读者: Rust中文编程
核心理念: AI时代必须使用中文编程,母语编程阅读效率极高
1. 开篇引入
本课目标
- 掌握if语句的使用
- 掌握else和else if语句的使用
- 掌握嵌套条件判断
- 理解逻辑运算符在条件判断中的应用
- 掌握match表达式的使用
生活场景引入
想象一下,你每天早上起床后要做的决定:
- 如果下雨,带伞;否则,不带伞
- 如果是周末,睡懒觉;否则,早起上学
- 如果考试成绩>=90,奖励自己;否则,如果>=80,继续努力;否则,需要加油
在编程中,我们也需要让程序根据不同的条件做出不同的选择,这就是条件判断语句的作用。
预期成果展示
通过这节课的学习,你将能够:
- 使用if语句进行简单的条件判断
- 使用else和else if语句处理多种情况
- 使用嵌套条件判断处理复杂情况
- 使用match表达式进行模式匹配
- 编写能够根据不同条件做出不同决策的程序
2. 概念讲解
if语句
if语句就像一个岔路口,根据条件的真假决定走哪条路。
rust
fn main() {
if 条件 {
// 条件为真时执行的代码
}
}
例如:
rust
fn main() {
let 天气 = "下雨";
if 天气 == "下雨" {
println!("带伞");
}
println!("出门");
}
else语句
else语句用于处理条件为假的情况。
rust
fn main() {
if 条件 {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
}
例如:
rust
fn main() {
let 天气 = "晴天";
if 天气 == "下雨" {
println!("带伞");
} else {
println!("不带伞");
}
println!("出门");
}
else if语句
else if语句用于处理多个条件的情况。
rust
fn main() {
if 条件1 {
// 条件1为真时执行的代码
} else if 条件2 {
// 条件2为真时执行的代码
} else {
// 所有条件都为假时执行的代码
}
}
例如:
rust
fn main() {
let 成绩 = 85;
if 成绩 >= 90 {
println!("优秀");
} else if 成绩 >= 80 {
println!("良好");
} else if 成绩 >= 60 {
println!("及格");
} else {
println!("不及格");
}
}
嵌套条件判断
嵌套条件判断就是在一个条件判断里面再放一个条件判断。
rust
fn main() {
if 条件1 {
if 条件2 {
// 条件1和条件2都为真时执行的代码
} else {
// 条件1为真但条件2为假时执行的代码
}
} else {
// 条件1为假时执行的代码
}
}
例如:
rust
fn main() {
let 年龄 = 15;
let 成绩 = 90;
if 年龄 >= 18 {
println!("成年人");
if 成绩 >= 60 {
println!("可以毕业");
} else {
println!("需要补考");
}
} else {
println!("未成年人");
if 成绩 >= 60 {
println!("成绩合格");
} else {
println!("需要努力");
}
}
}
逻辑运算符的应用
逻辑运算符可以用来组合多个条件。
rust
fn main() {
let 年龄 = 15;
let 成绩 = 90;
// 年龄>=12且年龄<=18,并且成绩>=80
if 年龄 >= 12 && 年龄 <= 18 && 成绩 >= 80 {
println!("可以参加比赛");
} else {
println!("不能参加比赛");
}
// 年龄<12或者年龄>18
if 年龄 < 12 || 年龄 > 18 {
println!("不在参赛年龄范围内");
} else {
println!("在参赛年龄范围内");
}
// 成绩不小于60
if ! (成绩 < 60) {
println!("成绩及格");
} else {
println!("成绩不及格");
}
}
match表达式
match表达式是Rust中一种强大的模式匹配工具,类似于switch语句,但更强大。
rust
fn main() {
match 表达式 {
模式1 => 代码1,
模式2 => 代码2,
// 更多模式...
_ => 默认代码,
}
}
例如:
rust
fn main() {
let 数字 = 3;
match 数字 {
1 => println!("一"),
2 => println!("二"),
3 => println!("三"),
4 => println!("四"),
5 => println!("五"),
_ => println!("其他数字"),
}
}
match表达式也可以匹配更复杂的模式:
rust
fn main() {
let 年龄 = 15;
match 年龄 {
0..=12 => println!("儿童"),
13..=18 => println!("青少年"),
19..=60 => println!("成年人"),
_ => println!("老年人"),
}
}
3. 动手实践
基础练习(必做)
-
成绩等级判断器:创建一个程序,根据成绩判断等级:
rustfn main() { let 成绩 = 85; if 成绩 >= 90 { println!("优秀"); } else if 成绩 >= 80 { println!("良好"); } else if 成绩 >= 70 { println!("中等"); } else if 成绩 >= 60 { println!("及格"); } else { println!("不及格"); } } -
身体质量指数(BMI)判断:创建一个程序,根据BMI指数判断体重状态:
rustfn main() { let 身高 = 1.75; // 单位:米 let 体重 = 50.5; // 单位:公斤 let bmi = 体重 / (身高 * 身高); println!("BMI指数:{}", bmi); if bmi < 18.5 { println!("体重偏轻"); } else if bmi < 24.0 { println!("体重正常"); } else if bmi < 28.0 { println!("超重"); } else { println!("肥胖"); } } -
简单的登录验证:创建一个程序,模拟登录验证:
rustfn main() { let 用户名 = "admin"; let 密码 = "123456"; let 输入用户名 = "admin"; let 输入密码 = "123456"; if 输入用户名 == 用户名 && 输入密码 == 密码 { println!("登录成功"); } else { println!("用户名或密码错误"); } }
进阶练习(选做)
-
猜数字游戏(初步):创建一个程序,模拟猜数字游戏:
rustfn main() { let 目标数字 = 7; let 猜测数字 = 5; if 猜测数字 < 目标数字 { println!("猜小了"); } else if 猜测数字 > 目标数字 { println!("猜大了"); } else { println!("猜对了"); } } -
交通信号灯模拟:创建一个程序,模拟交通信号灯:
rustfn main() { let 信号灯 = "红色"; match 信号灯 { "红色" => println!("停止"), "黄色" => println!("准备"), "绿色" => println!("通行"), _ => println!("无效信号灯"), } }
挑战练习(拓展)
-
复杂条件判断 :创建一个程序,使用嵌套条件和逻辑运算符:
rustfn main() { let 年龄 = 15; let 成绩 = 85; let 是否会员 = true; // 判断是否可以参加优惠活动 if 年龄 >= 12 && 年龄 <= 18 { if 成绩 >= 80 || 是否会员 { println!("可以参加优惠活动"); } else { println!("成绩不够,不能参加优惠活动"); } } else { println!("年龄不符合要求,不能参加优惠活动"); } }
4. 知识总结
核心概念回顾
- if语句:根据条件的真假执行不同的代码
- else语句:处理条件为假的情况
- else if语句:处理多个条件的情况
- 嵌套条件判断:在一个条件判断里面再放一个条件判断
- 逻辑运算符 :
&&(与)、||(或)、!(非),用于组合多个条件 - match表达式:强大的模式匹配工具,可以匹配多种情况
关键代码速查
| 语句类型 | 语法 | 示例 |
|---|---|---|
| if语句 | if 条件 { 代码 } |
if 成绩 >= 60 { println!("及格"); } |
| if-else语句 | if 条件 { 代码 } else { 代码 } |
if 下雨 { println!("带伞"); } else { println!("不带伞"); } |
| if-else if-else语句 | if 条件1 { 代码1 } else if 条件2 { 代码2 } else { 代码3 } |
成绩等级判断 |
| match表达式 | match 表达式 { 模式1 => 代码1, 模式2 => 代码2, _ => 默认代码 } |
交通信号灯模拟 |
常见错误提醒
- 条件表达式类型:条件表达式必须是bool类型
- 大括号:if、else、else if后面的代码块必须用大括号包围
- 分号:代码块内的每条语句都需要加分号
- match覆盖 :match表达式必须覆盖所有可能的情况,或者使用通配符
_
5. 课后作业
巩固练习题
- 编写一个程序,根据输入的月份判断季节
- 编写一个程序,判断一个年份是否是闰年
- 编写一个程序,根据用户输入的分数,输出对应的等级
创意编程题
- 发挥你的创意,创建一个程序,模拟一个简单的购物折扣系统(根据购物金额和会员等级计算折扣)
- 编写一个程序,模拟一个简单的游戏角色状态系统(根据生命值和魔法值判断角色状态)
下篇预习提示
下一篇我们将学习"重复执行------让程序帮你干活",就像学习如何让程序重复做一件事情,节省我们的时间。预习一下:
- 什么是循环语句?
- 有哪些类型的循环?
- 如何使用for循环?
- 如何使用while循环?
- 如何使用loop循环?
恭喜你完成了第四篇教程!你已经掌握了条件判断语句,学会了如何让程序做选择。继续加油,下一篇我们将学习如何让程序重复执行任务!
学习交流
如果你在学习过程中遇到任何问题,欢迎联系我:
- ** 视频号,"时空系"
- 邮箱: wbtm2718@qq.com
- 其他提示:
- 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
- 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流
祝你学习愉快!