C if...else 语句
本文介绍了 C 语言中的 if 语句 和 if…else 语句。
在 C 语言以及其他任何语言中, if
语句 和 if...else
语句都是最常用的流程控制语句。 if
用于控制在满足某个指定条件的时候执行相关的代码。
C if 语句
C 语言中 if
语句的语法是:
if (test expression)
{
// code
}
if 语句工作原理
if
语句计算括号 ()
内的测试表达式。
- 如果测试表达式的计算结果为
true
,则执行if
主体内的语句。 - 如果测试表达式的计算结果为
false
, 则不会执行if
主体内的语句。
要了解有关测试表达式计算的更多信息,请查看关系和逻辑运算符。
示例 1:if 语句
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// true if number is less than 0
if (number < 0) {
printf("You entered %d.\n", number);
}
printf("The if statement is easy.");
return 0;
}
输出 1
Enter an integer: -2
You entered -2.
The if statement is easy.
当用户输入 -2
时,测试表达式 number < 0
的计算结果为 true
。因此,You entered -2.
显示在屏幕上。
输出 2
Enter an integer: 5
The if statement is easy.
当用户输入 5
时,测试表达式 number < 0
被计算结果为 false
。因此,不执行 if
主体内部的语句
C if…else 语句
if
语句有一个可选 else
块。 if...else
语句的语法是:
if (test expression) {
// 测试表达式为 true 时执行这里的代码
}
else {
// 测试表达式为 false 时执行这里的代码
}
if…else 工作原理
如果测试表达式的计算结果为 true
:
- 执行
if
代码块内的语句。 - 不执行
else
代码块的语句。
如果测试表达式的计算结果为 false
:
- 不执行
if
代码块内的语句。 - 执行
else
代码块的语句。
示例 2:if…else 语句
#include <stdio.h>
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// True if the remainder is 0
if (number%2 == 0) {
printf("%d is an even integer.",number);
}
else {
printf("%d is an odd integer.",number);
}
return 0;
}
输出
Enter an integer: 7
7 is an odd integer.
当用户输入 7
时,测试表达式 number%2 == 0
的计算结果为 false
。因此,执行 else
代码块内的语句。
C if…else if 语句
if...else
语句根据测试表达式是 true
还是 false
来执行不同的代码块。有时,必须从两种以上的可能性中做出选择。
if...else if
可以计算多个测试表达式,并根据计算结果执行不同的语句。
if...else if
语句的语法
if (test expression1) {
// 代码
}
else if(test expression2) {
// 代码
}
else if (test expression3) {
// 代码
}
.
.
else {
// 代码
}
示例 3:C if…else if
#include <stdio.h>
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
//checks if the two integers are equal.
if(number1 == number2) {
printf("Result: %d = %d",number1,number2);
}
//checks if number1 is greater than number2.
else if (number1 > number2) {
printf("Result: %d > %d", number1, number2);
}
//checks if both test expressions are false
else {
printf("Result: %d < %d",number1, number2);
}
return 0;
}
输出
Enter two integers: 12
23
Result: 12 < 23
嵌套 if…else
if...else
语句中也可以包含另一个 if...else
语句。
示例 4:嵌套 if…else
#include <stdio.h>
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf("Result: %d = %d",number1,number2);
}
else {
printf("Result: %d > %d", number1, number2);
}
}
else {
printf("Result: %d < %d",number1, number2);
}
return 0;
}
省略大括号
如果 if...else
代码块内只有一个语句,可以不使用
例如,这段代码
if (a > b) {
printf("Hello");
}
printf("Hi");
可以写成如下代码:
if (a > b)
printf("Hello");
printf("Hi");
但是一般为了可读性,不建议省略大括号 {}
。这是一个好的编码习惯。