
If语句

if语句的基本流程控制图
if语句的流程控制可以通过简单的流程图表示,描述条件判断和分支执行的逻辑。
开始
│
▼
[条件判断]───真───> [执行语句块]───> [结束]
│
└─假───────> [跳过或执行else块]───> [结束]
单分支if语句流程
单分支if语句仅包含一个条件判断和一个执行块。
开始
│
▼
[条件为真?]──是──> [执行代码块]───> [继续后续代码]
│
└─否───────> [跳过代码块]─────> [继续后续代码]
双分支if-else流程
if-else语句在条件不满足时执行else块。
开始
│
▼
[条件为真?]──是──> [执行if块]───────> [继续后续代码]
│
└─否───────> [执行else块]──────> [继续后续代码]
多分支else-if流程
多个条件通过else-if链式判断,直到满足条件或执行默认else。
开始
│
▼
[条件1为真?]──是──> [执行块1]───────> [继续后续代码]
│
└─否───────> [条件2为真?]──是──> [执行块2]───> [继续后续代码]
│
└─否───────> [执行else块]───> [继续后续代码]
嵌套if语句流程
嵌套if语句在某个分支内进一步进行条件判断。
开始
│
▼
[外层条件为真?]──是──> [内层条件为真?]──是──> [执行嵌套块]
│ │
│ └─否───────> [执行其他块]
│
└─否───────> [跳过嵌套结构]─────> [继续后续代码]
关键说明
- 条件判断:必须为布尔表达式(True/False)。
- 代码块:缩进部分表示条件满足时执行的语句。
- 流程终止:未满足任何条件时可能跳过所有分支或执行默认else。
通过流程图可以清晰理解if语句的分支逻辑和代码执行路径。
If…else语句

If...else 语句的基本结构
If...else 语句是编程中用于条件判断的核心结构,根据条件的真假执行不同的代码块。
if condition:
# 条件为真时执行的代码
else:
# 条件为假时执行的代码
单条件判断
最简单的形式是仅使用 if,适用于只需处理条件为真时的情况。
x = 10
if x > 5:
print("x 大于 5")
双分支条件
通过 if...else 处理两种对立情况,条件为假时执行 else 块。
age = 18
if age >= 18:
print("已成年")
else:
print("未成年")
多条件判断(elif)
使用 elif 实现多重条件检查,适用于需要处理多个互斥条件的情况。
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 60:
print("C")
else:
print("D")
嵌套条件
在条件块内部嵌套其他 if...else 语句,用于处理更复杂的逻辑。
num = 15
if num > 0:
if num % 2 == 0:
print("正偶数")
else:
print("正奇数")
else:
print("非正数")
三元表达式
简化版的 if...else,适合短小的条件赋值操作。
x = 10
result = "大于5" if x > 5 else "小于等于5"
print(result) # 输出:大于5
空值合并与默认值
通过 if...else 提供变量为空时的默认值。
name = None
display_name = name if name else "匿名用户"
print(display_name) # 输出:匿名用户
逻辑运算符结合
利用 and、or 等逻辑运算符简化多条件判断。
username = "admin"
password = "123456"
if username == "admin" and password == "123456":
print("登录成功")
else:
print("登录失败")
注意事项
- 条件表达式需返回布尔值(
True/False),或可隐式转换为布尔值的对象(如非空列表、非零数字等)。 elif和else是可选的,但必须以if开头。- 代码块通过缩进(通常为4个空格)界定,同一代码块内缩进必须一致。
Elseif语句

语法结构
elseif语句用于在多个条件分支中进行选择,是if和else的扩展形式。其基本语法如下:
if (condition1) {
// 条件1为真时执行
} elseif (condition2) {
// 条件2为真时执行
} else {
// 所有条件均为假时执行
}
执行逻辑
- 当
if的条件(condition1)为真时,执行对应的代码块,跳过后续elseif和else。 - 若
if条件为假,则检查下一个elseif的条件(condition2),为真时执行其代码块。 - 所有条件均不满足时,执行
else块(如果存在)。
使用示例
检查变量值的范围:
$score = 85;
if ($score >= 90) {
echo "优秀";
} elseif ($score >= 80) {
echo "良好"; // 输出"良好"
} elseif ($score >= 60) {
echo "及格";
} else {
echo "不及格";
}
注意事项
elseif可连续使用多个,但需按逻辑顺序排列(如从大到小或从小到大)。- 在PHP中,
elseif与else if完全等价,但推荐使用elseif以保持一致性。 - 避免嵌套过深,超过3层时可考虑改用
switch或重构代码。
与switch对比
elseif适合范围判断或复杂条件,而switch更适合单一变量的离散值匹配:
// 使用switch实现相同逻辑
switch (true) {
case ($score >= 90):
echo "优秀";
break;
case ($score >= 80):
echo "良好";
break;
// 其他case...
}
Switch…case多重判断语句

switch...case 语句的基本语法
switch...case 是一种多分支条件判断结构,适用于对一个变量或表达式进行多重判断的场景。其基本语法如下:
switch (expression) {
case constant1:
// 代码块1
break;
case constant2:
// 代码块2
break;
...
default:
// 默认代码块
}
switch...case 的工作原理
- expression:需要被判断的变量或表达式,其值会与每个 case 后的常量进行比较。
- case constant:每个 case 后跟一个常量,用于与 expression 的值进行匹配。
- break:用于终止当前 case 的执行,防止代码继续执行下一个 case。
- default:当所有 case 都不匹配时,执行 default 代码块(可选)。
示例代码
以下是一个简单的示例,演示如何使用 switch...case 语句判断一周中的某一天:
#include <stdio.h>
int main() {
int day = 3;
switch (day) {
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 7:
printf("Sunday\n");
break;
default:
printf("Invalid day\n");
}
return 0;
}
注意事项
- break 的重要性:如果省略 break,程序会继续执行下一个 case 的代码块,直到遇到 break 或 switch 语句结束。
- case 常量的唯一性:每个 case 后的常量必须是唯一的,不能重复。
- expression 的类型限制:expression 必须是整型或枚举类型(如 int、char),不能是浮点型或字符串。
多个 case 共享代码块
如果有多个 case 需要执行相同的代码块,可以将它们合并:
switch (grade) {
case 'A':
case 'B':
case 'C':
printf("Pass\n");
break;
case 'D':
case 'F':
printf("Fail\n");
break;
default:
printf("Invalid grade\n");
}
switch...case 与 if...else 的比较
- 适用场景:switch...case 适用于对单一变量进行多重等值判断,if...else 适用于更复杂的条件判断(如范围判断、逻辑运算等)。
- 性能:switch...case 通常比多重 if...else 更高效,因为编译器可能对其进行优化(如跳转表)。
- 可读性:switch...case 在多重判断时结构更清晰,代码更简洁。
831

被折叠的 条评论
为什么被折叠?



