当前位置: 首页 > news >正文

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

第4篇:如果…那么——让程序做选择

作者:李金雨
联系方式:wbtm2718@qq.com
目标读者:Rust中文编程
核心理念:AI时代必须使用中文编程,母语编程阅读效率极高


1. 开篇引入

本课目标

  • 掌握if语句的使用
  • 掌握else和else if语句的使用
  • 掌握嵌套条件判断
  • 理解逻辑运算符在条件判断中的应用
  • 掌握match表达式的使用

生活场景引入

想象一下,你每天早上起床后要做的决定:

  • 如果下雨,带伞;否则,不带伞
  • 如果是周末,睡懒觉;否则,早起上学
  • 如果考试成绩>=90,奖励自己;否则,如果>=80,继续努力;否则,需要加油

在编程中,我们也需要让程序根据不同的条件做出不同的选择,这就是条件判断语句的作用。

预期成果展示

通过这节课的学习,你将能够:

  • 使用if语句进行简单的条件判断
  • 使用else和else if语句处理多种情况
  • 使用嵌套条件判断处理复杂情况
  • 使用match表达式进行模式匹配
  • 编写能够根据不同条件做出不同决策的程序

2. 概念讲解

if语句

if语句就像一个岔路口,根据条件的真假决定走哪条路。

fnmain(){if条件{// 条件为真时执行的代码}}

例如:

fnmain(){let天气="下雨";if天气=="下雨"{println!("带伞");}println!("出门");}

else语句

else语句用于处理条件为假的情况。

fnmain(){if条件{// 条件为真时执行的代码}else{// 条件为假时执行的代码}}

例如:

fnmain(){let天气="晴天";if天气=="下雨"{println!("带伞");}else{println!("不带伞");}println!("出门");}

else if语句

else if语句用于处理多个条件的情况。

fnmain(){if条件1{// 条件1为真时执行的代码}elseif条件2{// 条件2为真时执行的代码}else{// 所有条件都为假时执行的代码}}

例如:

fnmain(){let成绩=85;if成绩>=90{println!("优秀");}elseif成绩>=80{println!("良好");}elseif成绩>=60{println!("及格");}else{println!("不及格");}}

嵌套条件判断

嵌套条件判断就是在一个条件判断里面再放一个条件判断。

fnmain(){if条件1{if条件2{// 条件1和条件2都为真时执行的代码}else{// 条件1为真但条件2为假时执行的代码}}else{// 条件1为假时执行的代码}}

例如:

fnmain(){let年龄=15;let成绩=90;if年龄>=18{println!("成年人");if成绩>=60{println!("可以毕业");}else{println!("需要补考");}}else{println!("未成年人");if成绩>=60{println!("成绩合格");}else{println!("需要努力");}}}

逻辑运算符的应用

逻辑运算符可以用来组合多个条件。

fnmain(){let年龄=15;let成绩=90;// 年龄>=12且年龄<=18,并且成绩>=80if年龄>=12&&年龄<=18&&成绩>=80{println!("可以参加比赛");}else{println!("不能参加比赛");}// 年龄<12或者年龄>18if年龄<12||年龄>18{println!("不在参赛年龄范围内");}else{println!("在参赛年龄范围内");}// 成绩不小于60if!(成绩<60){println!("成绩及格");}else{println!("成绩不及格");}}

match表达式

match表达式是Rust中一种强大的模式匹配工具,类似于switch语句,但更强大。

fnmain(){match表达式{模式1=>代码1,模式2=>代码2,// 更多模式..._=>默认代码,}}

例如:

fnmain(){let数字=3;match数字{1=>println!("一"),2=>println!("二"),3=>println!("三"),4=>println!("四"),5=>println!("五"),_=>println!("其他数字"),}}

match表达式也可以匹配更复杂的模式:

fnmain(){let年龄=15;match年龄{0..=12=>println!("儿童"),13..=18=>println!("青少年"),19..=60=>println!("成年人"),_=>println!("老年人"),}}

3. 动手实践

基础练习(必做)

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

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

    fnmain(){let身高=1.75;// 单位:米let体重=50.5;// 单位:公斤letbmi=体重/(身高*身高);println!("BMI指数:{}",bmi);ifbmi<18.5{println!("体重偏轻");}elseifbmi<24.0{println!("体重正常");}elseifbmi<28.0{println!("超重");}else{println!("肥胖");}}
  3. 简单的登录验证:创建一个程序,模拟登录验证:

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

进阶练习(选做)

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

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

    fnmain(){let信号灯="红色";match信号灯{"红色"=>println!("停止"),"黄色"=>println!("准备"),"绿色"=>println!("通行"),_=>println!("无效信号灯"),}}

挑战练习(拓展)

  1. 复杂条件判断:创建一个程序,使用嵌套条件和逻辑运算符:
    fnmain(){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
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

http://www.jsqmd.com/news/734242/

相关文章:

  • 甲言Jiayan:古汉语NLP终极解决方案,让文言文处理变得简单高效
  • Linux Shell 中有个字符让我瞬间感觉自己像个黑客
  • 别再手动导Jar包了!用Maven私服一键管理KingbaseES 8.6.0 JDBC驱动(SpringBoot整合指南)
  • 雀魂牌谱屋完全指南:用数据驱动你的麻将竞技提升
  • 题解:AcWing 6057 最短路
  • PCL2整合包导出:3分钟掌握智能分享的正确姿势 [特殊字符]
  • 告别手动!SWMM 5.2 批量设置检查井与管道的3种高效方法(附脚本思路)
  • claw-exterminator:基于clang-format的代码格式化自动化工具实战
  • 语雀Lake文档智能解析引擎:解锁知识资产跨平台流动新范式
  • 【仅限前500名技术负责人】VSCode 2026企业级启动优化包:含自定义shell环境注入模块、离线符号表预加载工具及启动火焰图诊断模板
  • 从F103到F407:手把手教你移植广州大彩串口屏HAL库驱动(避坑指南)
  • 开源大模型Grok本地部署与优化实战:从架构解析到应用落地
  • 显卡驱动清理终极指南:5个专业技巧彻底解决驱动残留问题
  • 题解:AcWing 6058 亲戚
  • Gemma 2本地部署方案与优化技巧详解
  • 为 Hermes Agent 配置自定义供应商并指向 Taotoken 服务
  • 终极Mac剪贴板管理方案:Maccy完整使用指南与深度优化
  • OmniInsert:无掩码视频插入技术的原理与应用
  • 基于LLM的GUI自动化智能体:从原理到实践
  • Motif-2-12.7B模型架构与优化技术解析
  • 基于Claude的AI任务编排框架:MissionRunner实战指南
  • 使用 Taotoken CLI 工具一键配置团队统一的开发环境
  • 别再当‘炼丹师’了!用Python的shap库5分钟看懂你的模型在想什么
  • 终极指南:如何使用EASY-HWID-SPOOFER实现硬件信息伪装
  • 为团队开发环境统一配置 TaoToken CLI 工具
  • 2026 年用 1978 年终端 VT - 100,体验如何?虽问题多但感受超棒!
  • 基于FastAPI与钉钉Stream模式构建企业级ChatGPT机器人
  • 大语言模型规范对齐评估:挑战与ALIGN3框架解析
  • MCP 2026推理引擎集成实战:从零部署到毫秒级响应,7个关键配置参数全解析
  • 手把手教你用SpyGlass CDC调试:利用电子表格和增量示意图快速定位并修复CDC违例