news 2026/5/1 22:00:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第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
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 22:00:44

2026 年用 1978 年终端 VT - 100,体验如何?虽问题多但感受超棒!

什么是 VT - 100&#xff1f;VT - 100 是一种由屏幕和键盘组成的“终端”&#xff0c;需连接计算机使用&#xff0c;类似现在电脑上的 Terminal、Console 或 Command Prompt 应用程序&#xff0c;但它本身不是计算机。其协议&#xff08;ANSI 转义序列&#xff09;被所有现代终…

作者头像 李华
网站建设 2026/5/1 21:58:31

基于Whisper与本地LLM的实时逻辑谬误检测系统构建指南

1. 项目概述&#xff1a;实时谬误检测系统如果你关注过政治辩论、商业谈判或者网络直播&#xff0c;可能会发现一个现象&#xff1a;很多讨论看似激烈&#xff0c;实则充斥着逻辑漏洞和误导性言论。事后复盘时&#xff0c;我们总能指出“这里偷换了概念”、“那里犯了诉诸人身的…

作者头像 李华
网站建设 2026/5/1 21:58:30

保姆级教程:用YOLOv8+ByteTrack搞定视频车辆计数与追踪(附完整Python代码)

从零实现交通视频分析&#xff1a;YOLOv8与ByteTrack实战指南 在智慧城市建设和智能交通系统快速发展的今天&#xff0c;视频车辆计数与追踪技术已成为交通流量监控、违章抓拍和停车场管理的核心技术之一。不同于静态图像分析&#xff0c;视频流处理需要解决目标连续追踪、ID保…

作者头像 李华
网站建设 2026/5/1 21:55:36

从贝叶斯网络到因子图:用大白话图解视觉SLAM的后端概率模型

从贝叶斯网络到因子图&#xff1a;用大白话图解视觉SLAM的后端概率模型 想象你是一个在迷宫中寻宝的探险家&#xff0c;手里只有一张不断更新的地图和几个不太靠谱的指南针。每走一步&#xff0c;你都要根据新的观察来修正自己的位置和地图——这就是视觉SLAM&#xff08;同步定…

作者头像 李华
网站建设 2026/5/1 21:53:11

为什么92%的车载以太网项目TSN协议开发延期?曝光3家Tier1未公开的C语言TSN移植Checklist(含CAN-FD/TSN共存时序图)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;车载以太网TSN协议开发延期的根因分析与行业现状 车载以太网时间敏感网络&#xff08;TSN&#xff09;正成为智能汽车域控制器间高可靠、低延迟通信的核心底座&#xff0c;但其协议栈开发普遍滞后于整车…

作者头像 李华