第五章:条件判断与分支语句

本章将结合运算符,学习 R 语言的条件判断与分支语句。这是编程中最核心的逻辑控制功能,能让程序根据不同条件执行不同代码,实现真正的 "智能判断"。

一、什么是条件判断?

条件判断就是:
如果满足某个条件,就执行一段代码;否则执行另一段代码。

生活中的例子:

  • 如果分数 ≥ 60 → 及格
  • 否则 → 不及格

在 R 语言中,实现这个功能的语句是:
if / else if / else

二、最基础:if 语句(单条件)

语法

r 复制代码
if (条件) {
  条件成立时执行的代码
}

示例

r 复制代码
score <- 85

# 如果分数大于等于60,输出及格
if (score >= 60) {
  print("成绩及格!")
}

运行结果:

txt 复制代码
[1] "成绩及格!"

三、常用:if + else(二选一)

语法

r 复制代码
if (条件) {
  条件成立
} else {
  条件不成立
}

示例

r 复制代码
score <- 85

# 如果分数大于等于60,输出及格
score <- 55

if (score >= 60) {
  print("及格")
} else {
  print("不及格")
}

运行结果:

txt 复制代码
[1] "不及格"

四、多条件:if + else if + else(多分支)

适合多个等级判断,如:优秀、良好、及格、不及格。

语法

r 复制代码
if (条件1) {
} else if (条件2) {
} else if (条件3) {
} else {
}

示例

r 复制代码
score <- 88

if (score >= 90) {
  print("等级:优秀")
} else if (score >= 80) {
  print("等级:良好")
} else if (score >= 60) {
  print("等级:及格")
} else {
  print("等级:不及格")
}

运行结果:

txt 复制代码
[1] "等级:良好"

五、结合逻辑运算符(多条件同时判断)

可以用 &(同时满足)、|(满足一个即可)组合条件。

r 复制代码
age <- 20
is_student <- TRUE

if (age >= 18 & is_student == TRUE) {
  print("成年学生")
}

六、综合实战练习(本章重点 ✅ 可直接复制运行)

结合运算符 + 变量 + 条件判断,做一个完整的成绩计算与等级判断程序。

r 复制代码
# ==============================
# R 综合练习:成绩计算 + 等级判断
# 结合:变量 + 运算符 + 条件判断
# ==============================

# 1. 定义三科成绩
math <- 92
chinese <- 85
english <- 78

# 2. 计算总分与平均分(算术运算符)
total <- math + chinese + english
average <- total / 3

# 3. 输出结果
print(paste("总分:", total))
print(paste("平均分:", round(average, 2)))

# 4. 等级判断(条件分支语句)
if (average >= 90) {
  print("最终评价:优秀 🎉")
} else if (average >= 80) {
  print("最终评价:良好 👍")
} else if (average >= 60) {
  print("最终评价:及格 ✔️")
} else {
  print("最终评价:不及格 ❌")
}

运行结果:

txt 复制代码
[1] "总分: 255"
[1] "平均分: 85"
[1] "最终评价:良好 👍"
相关推荐
阿尼卡~9 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
hhhjhl11 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
染指111011 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
wangchunyu11411 小时前
JAVA JVM内存结构与运行时数据区
java·开发语言·jvm
slongzhang_11 小时前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
云和数据.ChenGuang12 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu12 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
多弗朗皮卡丘13 小时前
C++的IO流
开发语言·c++·io流·文件io流
骑着蜗牛撵大象32713 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph
itmigrate14 小时前
Rust 里的所有权误区:不是不写 clone 就叫高性能
开发语言·后端·rust