第4篇:如果...那么——让程序做选择 Rust中文编程

第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. 动手实践

基础练习(必做)

  1. 成绩等级判断器:创建一个程序,根据成绩判断等级:

    rust 复制代码
    fn main() {
        let 成绩 = 85;
        
        if 成绩 >= 90 {
            println!("优秀");
        } else if 成绩 >= 80 {
            println!("良好");
        } else if 成绩 >= 70 {
            println!("中等");
        } else if 成绩 >= 60 {
            println!("及格");
        } else {
            println!("不及格");
        }
    }
  2. 身体质量指数(BMI)判断:创建一个程序,根据BMI指数判断体重状态:

    rust 复制代码
    fn 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!("肥胖");
        }
    }
  3. 简单的登录验证:创建一个程序,模拟登录验证:

    rust 复制代码
    fn main() {
        let 用户名 = "admin";
        let 密码 = "123456";
        
        let 输入用户名 = "admin";
        let 输入密码 = "123456";
        
        if 输入用户名 == 用户名 && 输入密码 == 密码 {
            println!("登录成功");
        } else {
            println!("用户名或密码错误");
        }
    }

进阶练习(选做)

  1. 猜数字游戏(初步):创建一个程序,模拟猜数字游戏:

    rust 复制代码
    fn main() {
        let 目标数字 = 7;
        let 猜测数字 = 5;
        
        if 猜测数字 < 目标数字 {
            println!("猜小了");
        } else if 猜测数字 > 目标数字 {
            println!("猜大了");
        } else {
            println!("猜对了");
        }
    }
  2. 交通信号灯模拟:创建一个程序,模拟交通信号灯:

    rust 复制代码
    fn main() {
        let 信号灯 = "红色";
        
        match 信号灯 {
            "红色" => println!("停止"),
            "黄色" => println!("准备"),
            "绿色" => println!("通行"),
            _ => println!("无效信号灯"),
        }
    }

挑战练习(拓展)

  1. 复杂条件判断 :创建一个程序,使用嵌套条件和逻辑运算符:

    rust 复制代码
    fn 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, _ => 默认代码 } 交通信号灯模拟

常见错误提醒

  1. 条件表达式类型:条件表达式必须是bool类型
  2. 大括号:if、else、else if后面的代码块必须用大括号包围
  3. 分号:代码块内的每条语句都需要加分号
  4. match覆盖 :match表达式必须覆盖所有可能的情况,或者使用通配符_

5. 课后作业

巩固练习题

  1. 编写一个程序,根据输入的月份判断季节
  2. 编写一个程序,判断一个年份是否是闰年
  3. 编写一个程序,根据用户输入的分数,输出对应的等级

创意编程题

  1. 发挥你的创意,创建一个程序,模拟一个简单的购物折扣系统(根据购物金额和会员等级计算折扣)
  2. 编写一个程序,模拟一个简单的游戏角色状态系统(根据生命值和魔法值判断角色状态)

下篇预习提示

下一篇我们将学习"重复执行------让程序帮你干活",就像学习如何让程序重复做一件事情,节省我们的时间。预习一下:

  • 什么是循环语句?
  • 有哪些类型的循环?
  • 如何使用for循环?
  • 如何使用while循环?
  • 如何使用loop循环?

恭喜你完成了第四篇教程!你已经掌握了条件判断语句,学会了如何让程序做选择。继续加油,下一篇我们将学习如何让程序重复执行任务!

学习交流

如果你在学习过程中遇到任何问题,欢迎联系我:

  • ** 视频号,"时空系"
  • 邮箱: wbtm2718@qq.com
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

相关推荐
eLIN TECE4 小时前
Golang 构建学习
开发语言·学习·golang
HoneyMoose4 小时前
Discourse 近期更新后附件名中的下划线转义
开发语言
小张同学8244 小时前
Python并发编程实战用多线程和协程加速智能体执行效率
开发语言·人工智能·python
hixiong1234 小时前
C# OpenvinoSharp部署INSID3
开发语言·人工智能·ai·c#·openvinosharp
可视化运维管理爱好者4 小时前
pi mono操作开发指南
运维·网络·ai
蜡笔小新拯救世界4 小时前
部分安全笔记总结
linux·网络·web安全
jieyucx4 小时前
# Go 语言指针零基础入门详解
开发语言·后端·golang
4***17545 小时前
3.3 Python图形编程
开发语言·python·pygame
橙子圆1235 小时前
java之拦截器和适配器模式
java·开发语言