您从 运算符章节 中了解到,C 支持数学中的常见逻辑条件:
- 小于:a < b
- 小于或等于:a <= b
- 大于:a > b
- 大于等于:a >= b
- 等于 a == b
- 不等于:a != b
您可以使用这些条件为不同的决策执行不同的操作。
C 有以下条件语句:
- 使用
if
指定要执行的代码块,如果指定条件为真 - 使用
else
指定要执行的代码块,如果相同的条件为假 - 如果第一个条件为假,则使用
else if
指定要测试的新条件 - 使用
switch
指定要执行的许多替代代码块
使用 if
语句指定在条件为 true
时要执行的 C 代码块。
if (条件) {
// 条件为真(true)时执行的代码块
}
其执行过程可表示为下图:
┆
╭┈┈┈┈┈▼┈┈┈┈┈╮
┆ condition ├┈┈┈╮
╰┈┈┈┈┈┈┈┈┈┈┈╯ ┆
┆ true ┆ false
▼ ┆
╭┈┈┈┈┴┈┈┈┈╮ ┆
┆ 语句块 ┆ ┆
╰┈┈┈┈┬┈┈┈┈╯ ┆
├┈◀┈┈┈┈┈┈┈╯
▼
请注意,if
是小写字母。 大写字母(If 或 IF)会产生错误。
在下面的示例中,我们测试两个值来确定 20 是否大于 18。如果条件为 true
,则打印一些文本:
if (20 > 18) {
printf("20 大于 18");
}
我们还可以测试变量:
int x = 20;
int y = 18;
if (x > y) {
printf("x 大于 y");
}
示例说明
在上面的示例中,我们使用两个变量 x 和 y 来测试 x 是否大于 y(使用 >
运算符)。 由于 x 为 20,y 为 18,并且我们知道 20 大于 18,我们在屏幕上打印 “x 大于 y”。
使用 else
语句指定在条件(condition) 为 false
时要执行的代码块。
if (条件) {
// 条件为真(true)时执行的代码块
} else {
// 条件为假(false)时执行的代码块
}
其执行过程可表示为下图:
┆
▼
true ╭┈┈┈┈┈┴┈┈┈┈┈╮ false
╭┈┈┈┈┈┈┈┤ condition ├┈┈┈┈┈┈┈╮
▼ ╰┈┈┈┈┈┈┈┈┈┈┈╯ ▼
╭┈┈┈┈┴┈┈┈┈┈╮ ╭┈┈┈┈┴┈┈┈┈┈╮
┆ 语句块1 ┆ ┆ 语句块2 ┆
╰┈┈┈┈┬┈┈┈┈┈╯ ╰┈┈┈┈┬┈┈┈┈┈╯
╰┈┈┈┈┈┈┈┈┈┈┈┈┈┬┈┈┈┈┈┈┈┈┈┈┈┈┈╯
▼
int time = 20;
if (time < 18) {
printf("再会!");
} else {
printf("晚上好!");
}
// 输出 -> "晚上好!"
示例说明
在上面的示例中,时间 (20) 大于 18,因此条件为 false
。 因此,我们转到 else
条件并打印到屏幕“晚安”。 如果时间小于 18,程序将打印 “晚上好!”。
如果第一个条件为 false
,则使用 else if
语句指定新条件。
if (条件1) {
// 如果 条件 1 为真(true),则要执行的代码块
} else if (条件2) {
// 如果 条件 1 为假(false)且 条件 2 为真(true),则要执行的代码块
} else {
// 如果 条件 1 为假(false)且 条件 2 为假(false),则要执行的代码块
}
int time = 22;
if (time < 10) {
printf("早上好!");
} else if (time < 20) {
printf("再会!");
} else {
printf("晚上好!");
}
// 输出 -> "晚上好!"
示例说明
在上面的示例中,时间 (22) 大于 10,因此第一个条件为 false
。 else if
语句中的下一个条件也是 false
,所以我们继续讨论 else
条件,因为 条件1 和 条件2 都是 false
- 并打印到 屏幕“晚上好”。
但是,如果时间是 14,我们的程序将打印“再会!”。
这个例子展示了如何使用 if..else if
来判断一个数字是正数还是负数:
int myNum = 10; // Is this a positive or negative number?
if (myNum > 0)
printf("该值为正数。");
else if (myNum < 0)
printf("该值为负数。");
else
printf("值为 0。");
还有一个简写 if else
,它被称为三元运算符,因为它由三个操作数组成。它可用于用单行替换多行代码。它通常用于替换简单的 if else
语句:
变量 = (条件) ? 表达式真(true) : 表达式假(false);
原始示例:
int time = 20;
if (time < 18) {
printf("再会!");
} else {
printf("晚上好!");
}
简化示例:
int time = 20;
(time < 18) ? printf("再会!") : printf("晚上好!");
如果您想使用传统的 if...else
语句或三元运算符,这完全取决于您。