跳到主要内容

C 语言if...else语句

提示
  1. 基本if语句:在C中,if语句根据测试表达式的真假来执行或跳过代码块。
  2. if...else语句:当测试表达式为真时,执行if内的代码;为假时,执行else内的代码。
  3. if...else阶梯和嵌套if...else阶梯用于在多个条件中选择执行不同的代码块,而嵌套if...else允许在一个if...else语句内部再嵌套另一个。

C语言中的if语句

C编程中if语句的语法是:

if (测试表达式)
{
// 代码
}

if语句是如何工作的?

if语句对括号()内的测试表达式进行求值。

  • 如果测试表达式求值为真,if的主体内的语句被执行。
  • 如果测试表达式求值为假,if的主体内的语句不被执行。

C编程中if语句的工作原理

要了解测试表达式何时求值为真(非零值)和假(0),请查看关系运算符逻辑运算符

示例1:if语句

// 程序用于显示一个数字,如果它是负数

#include <stdio.h>
int main() {
int number;

printf("输入一个整数: ");
scanf("%d", &number);

// 如果number小于0,则为真
if (number < 0) {
printf("您输入了 %d。\n", number);
}

printf("if语句很简单。");

return 0;
}

输出1

输入一个整数: -2
您输入了 -2
if语句很简单。

当用户输入-2时,测试表达式number<0求值为真。因此,屏幕上显示了您输入了-2。

输出2

输入一个整数: 5
if语句很简单。

当用户输入5时,测试表达式number<0求值为假,if主体内的语句没有被执行。

C语言中的if...else语句

if语句可能有一个可选的else块。if..else语句的语法是:

if (测试表达式) {
// 如果测试表达式为真,则运行代码
}
else {
// 如果测试表达式为假,则运行代码
}

if...else语句是如何工作的?

如果测试表达式求值为真,

  • if主体内的语句被执行。
  • else主体内的语句被跳过不执行。

如果测试表达式求值为假,

  • else主体内的语句被执行
  • if主体内的语句被跳过不执行。

C编程中if...else语句的工作原理

示例2:if...else语句

// 检查一个整数是奇数还是偶数

#include <stdio.h>
int main() {
int number;
printf("输入一个整数: ");
scanf("%d", &number);

// 如果余数为0,则为真
if (number%2 == 0) {
printf("%d 是一个偶数。",number);
}
else {
printf("%d 是一个奇数。",number);
}

return 0;
}

输出

输入一个整数: 7
7 是一个奇数。

当用户输入7时,测试表达式number%2==0求值为假。因此,else主体内的语句被执行。

C语言中的if...else阶梯

if...else语句根据测试表达式是真是假执行两种不同的代码。有时,需要从多于两个可能性中做出选择。

if...else阶梯允许您在多个测试表达式之间进行检查,并执行不同的语句。

if...else阶梯的语法

if (测试表达式1) {
// 语句
}
else if(测试表达式2) {
// 语句
}
else if (测试表达式3) {
// 语句
}
.
.
else {
// 语句
}

示例3:C语言中的if...else阶梯

// 程序用于通过=、>或<符号比较两个整数

#include <stdio.h>
int main() {
int number1, number2;
printf("输入两个整数: ");
scanf("%d %d", &number1, &number2);

// 检查两个整数是否相等。
if(number1 == number2) {
printf("结果: %d = %d",number1,number2);
}

// 检查number1是否大于number2。
else if (number1 > number2) {
printf("结果: %d > %d", number1, number2);
}

// 检查两个测试表达式是否都为假
else {
printf("结果: %d < %d",number1, number2);
}

return 0;
}

输出

输入两个整数: 12
23
结果: 12 < 23

嵌套的if...else

可以在另一个if...else语句的主体内包含一个if...else语句。

示例4:嵌套的if...else

下面给出的程序使用与if...else阶梯示例类似的方法来比较两个整数,使用<>=符号。然而,我们将使用嵌套的if...else语句来解决这个问题。

#include <stdio.h>
int main() {
int number1, number2;
printf("输入两个整数: ");
scanf("%d %d", &number1, &number2);

if (number1 >= number2) {
if (number1 == number2) {
printf("结果: %d = %d",number1,number2);
}
else {
printf("结果: %d > %d", number1, number2);
}
}
else {
printf("结果: %d < %d",number1, number2);
}

return 0;
}

如果if...else语句的主体只有一个语句,您不需要使用括号{}

例如,这段代码

if (a > b) {
printf("Hello");
}
printf("Hi");

等同于

if (a > b)
printf("Hello");
printf("Hi");