C 语言中的 if 语句

这节课我们来学习下程序中另外一个非常重要的语句:if

1. 语法

if (判断条件布尔运算)
{
	条件成立后运行的语句
}

这里的条件判断采用了布尔运算,也就是真值和假值两种情况。当 if 后面放入的条件判断语句的执行最终结果为真的时候,就会执行花括号中的语句,如果条件语句最终的结果为假,那么就不会执行花括号 中的语句,程序会跳过花括号中的代码段,继续执行后面的代码。

这里给出了真值表,以供大家参考。

A B A && B(A与B) A || B(A或B) !A(非A) !B非B)
1 0 0 1 0 1
0 1 0 1 1 0
0 0 0 0 1 1
1 1 1 1 0 0

这个表格给出了基本的条件判断中条件成立情况。

2. 执行过程

图片描述

3. 场景

在程序中需要进行条件判断并根据条件需要执行不同分支语句的时候就需要判断语句。

3.1 实例

实例中的程序都是可以运行。大家可以实际动手来试试。

这里我们准备一个猜数字的小游戏,以帮助大家来理解条件语句。只有当数字等于 2 的时候,屏幕上才会显示”你猜对了“的字样。

#include <stdio.h>
int main()
{
    int a;
    puts("请你猜数字,请输入0-9的数字"); scanf("%i",&a);
    if (a==2)
    {
    	puts("你猜对了");
    }
    return 0;
}

这是在 gcc version 8.3.0 上执行的结果。

图片描述

#include <stdio.h>

int main()
{
    int a;
    puts("请你猜数字,请输入0-9的数字"); scanf("%i",&a);
    if (a<3 && a>1)
    {
    	puts("你猜对了");
    }
    return 0;
}

这是运行结果,与上面实现了同样的功能,只不过这里用了布尔运算。当两个条件同时都成立的时候才 可以运行条件语句中的内容。

图片描述

#include <stdio.h>

int main()
{
    int a;
    puts("请你猜数字,请输入0-9的数字"); scanf("%i",&a);
    if (a<3 || a>1)
    {
    	puts("你猜对了");
    }
    return 0;
}

这个时候,无论输入什么数字,都会显示结果正确。因为这时的判断条件是 a 小于 3 或者 a 大于 1 的时候,条件都是成立的。这个时候如果我们的预期还是只输出 2 ,那么这个条件判断就是错的。

图片描述

3.2 提示

在使用条件判断中,一定要注意使用条件判断符号,也就是 == ,而不是赋值符号 = , 为了防止出现这个错误,也可以将数值与变量位置互换反过来写。写成 5==a

4. 小结

作为程序组成的基本构建之一的条件语句,是可以通过条件的设立与判断来改变程序的走向。这就如同 在一个十字路口,你可以根据自己的既定目标选择通过十字路口的方向,以此来最终到达自己的目的地。

虽然条件语句构成简单,但是要注意的是这里会经常引发隐蔽的错误。比如将条件判断写成了赋值。布 尔判断的循序与我们预想的不一样等等。