C语言中的if语句(非常详细)

🏷️ 365bet怎么提现 📅 2025-07-02 16:39:36 👤 admin 👁️ 575 ❤️ 565
C语言中的if语句(非常详细)

C语言中的分支判断语句可以细分为 3 种,分别是 if、if else 和 else if 语句,它们可以判断表达式的值,根据该值的情况控制程序流程。

C语言if语句

if 语句会对表达式进行判断,根据判断的结果决定是否进行相应的操作。

图 1 买彩票

例如上图表达的意思是,买彩票,如果中奖了就买小汽车。

if 语句的一般形式如下:

if(表达式) 语句块

有以下几点说明:

if 是 C语言条件判断语句中的关键字之一。

表达式是上面介绍过的检测条件,可以是关系表达式和逻辑表达式,也可以是数值。

语句块可以是一条语句,也可以是任意合法的复合语句(复合语句要用{ }括起来)。

if 语句的执行过程如下:

先计算括号中的表达式的值。

若表达式的值为真值(条件成立),执行语句块;否则(条件不成立),不执行 if 语句里的语句块,而去执行下一条语句。

if 语句的执行流程图如下图所示:

图 2 if 语句的执行流程图

例如下面的这行代码:

if(iNum) printf("这是真值");

上述代码会判断变量 iNum 的值,如果变量 iNum 的值为真值,则执行后面的语句;如果变量的值为假值,则不执行后面的语句。

在 if 语句的括号中,不仅可以判断一个变量的值是否为真值,也可以判断表达式的结果是否为真值,例如:

if(iSignal==1) printf("当前信号灯的状态是:%d:",iSignal);

这行代码的含义是:判断iSignal==1是否成立,如果条件成立,那么判断的结果是真值,则执行后面的输出语句;如果条件不成立,那么结果为假值,则不执行后面的输出语句。

从上面这两行代码可以看到 if 后面的执行部分只是调用了一条语句,如果是两条语句该怎么办呢?这时可以使用花括号标识执行部分使之成为语句块,例如:

if(iSignal==1)

{

printf("当前信号灯的状态是:%d:\n",iSignal);

printf("车需要停止");

}

将执行的语句都放在花括号中,这样当 if 语句判断条件为真时,就可以全部执行。使用这种方式的好处是可以更规范、清楚地表达出 if 语句所包含语句的范围,建议大家使用 if 语句时都使用花括号将执行语句标识在内。

C语言if else语句

除了可以指定在条件为真时执行某些语句外,还可以指定在条件为假时执行另外一段代码,这在 C语言中是利用 else 语句来完成的。

if else语句的一般形式如下:

if(表达式)

语句块1;

else

语句块2;

有以下几点说明:

if 和 else 是 C语言条件判断语句中的关键字。

表达式是上面介绍过的检测条件,可以是关系表达式和逻辑表达式,也可以是数值。

语句块 1 和语句块 2 可以是一条语句,也可以是任意合法的复合语句(复合语句包含{})。

if else 语句的执行过程如下:

先计算括号中的表达式的值。

若表达式的值为真值(条件成立),执行 if 语句里的语句块 1;否则(条件不成立),执行 else 语句里的语句块 2。

if else 语句的执行流程图如下图所示:

图 3 if else语句的执行流程图

在 if 后的括号中判断表达式的结果,如果判断的结果为真值,则执行紧跟在 if 后的语句块中的内容;如果判断的结果为假值,则执行 else 语句后的语句块中的内容。例如:

if(value)

{

printf("这个值为真值");

}

else

{

printf("这个值为假值");

}

在上面的代码中,如果 if 判断变量 value 的值为真值,则执行 if 后面的语句块并进行输出。如果 if 判断的结果为假值,则执行 else 下面的语句块并进行输出。

注意,一个 else 语句必须跟在一个 if 语句的后面。

在使用 if 语句比较浮点数是否相等时,不要使用浮点值,否则会导致实际结果存在偏差,因为浮点值属于近似值,例如如下关键代码:

double d = 2 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1; //计算的结果是1.5

if (d == 1.5) //比较是否等于1.5

{

printf("d的值是1.5"); //输出结果

}

else //如果不等于1.5

{

printf("d的值不是1.5"); //输出结果

}

上述代码的运行结果如下:

d的值不是1.5

从代码运行结果来看,输出的是判断结果值不等于 1.5 对应的语句。因此,两个浮点值的相等测试并不可靠,建议读者朋友不要使用。

C语言else if语句

利用 if 和 else 关键字的组合可以实现 else if 语句,该语句可用于对一系列互斥的条件进行检验。

else if 语句的一般形式如下:

if(表达式1) 语句块1

else if(表达式2) 语句块2

else if(表达式3) 语句块3

else if(表达式m) 语句块m

else 语句块n

例如,某商场举行大转盘抽奖活动,不同的中奖等级会获得不同的奖品,中奖的等级之间是互斥的,每次抽奖的结果都只能出现一个等级。要实现这个抽奖过程,可以使用 else if 语句,对应的流程图如下图所示:

图 4 抽奖流程

使用 else if 语句时,有以下几点说明:

if 和 else 是 C语言条件判断语句中的关键字;

表达式 1、表达式 2 等是上面介绍过的检测条件,可以是关系表达式和逻辑表达式,也可以是数值;

语句块 1、语句块 2……语句块 n 可以是一条语句,也可以是任意合法的复合语句(复合语句要用{}括起来)。

else if语句的执行过程如下:

先计算括号中的表达式 1 的值;

若表达式 1 的值为真值(条件成立),则执行 if 后紧跟的语句,忽略后面的 else if 和 else 后紧跟的语句;

若表达式 1 的值为假值(条件不成立),则计算表达式 2 的值;若表达式 2 的值为真值(条件成立),则会输出 else if 后紧跟的语句,会忽略 if 后紧跟的语句和 else 后紧跟的语句。如此循环,依次检测每个表达式的值。

else if 语句的执行流程图如下图所示。

图 4 else if语句的执行流程图

首先对 if 语句中的表达式 1 进行判断,如果结果为真值,则执行后面跟着的语句块 1,然后跳过 else if 语句和 else 语句;如果结果为假值,那么判断 else if 语句中的表达式 2。如果表达式 2 的值为真值,则执行语句块 2 而不会执行后面的 else if 或者 else 语句。当所有的判断都不成立,也就是表达式的值都为假值时,执行 else 后的语句块。

例如:

if(iSelection==1)

{…}

else if(iSelection==2)

{…}

else if(iSelection==3)

{…}

else

{…}

上述代码的含义如下:

使用 if 语句判断变量 iSelection 的值是否为 1,如果为 1 则执行后面语句块中的内容,然后跳过之后的 else if 语句和 else 语句的执行;

如果 iSelection 的值不为 1,那么通过 else if 语句判断 iSelection 的值是否为 2,如果值为 2,则条件为真,执行后面紧跟着的语句块,执行完后跳过之后的 else if 语句和 else 语句的操作;

如果 iSelection 的值也不为 2,那么通过接下来的 else if 语句判断 iSelection 的值是否等于数值 3,如果等于 3,则执行后面语句块中的内容,否则执行 else 语句块中的内容。也就是说,当前面所有的判断条件都不成立(表达式的值为假值)时,执行 else 语句块中的内容;

C语言if语句的嵌套

嵌套可以理解为镶嵌、套用,例如我们熟悉的俄罗斯套娃,一个套着一个,这就可以叫作嵌套。if 嵌套就是在 if 语句中包含一条或多条 if 语句,一般形式如下:

if(表达式1)

if(表达式2) 语句块1

else 语句块2

else

if(表达式3) 语句块3

else 语句块4

if 嵌套的功能是对判断的条件进行细化,方便进行相应的操作。例如:

#include

int main()

{

int iDay; // 定义变量表示输入的内容代表星期几

// 定义变量代表一周中的每一天

int Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4,

Friday = 5, Saturday = 6, Sunday = 7;

printf("请选择星期几:\n"); // 提示信息

scanf("%d", &iDay); // 输入星期信息

if (iDay > Friday)

{ // 休息日的情况

if (iDay == Saturday)

{ // 为星期六时

printf("和朋友去逛街\n");

}

else

{ // 为星期日时

printf("在家陪家人\n");

}

}

else

{ // 工作日的情况

if (iDay == Monday)

{ // 为星期一时

printf("开会\n");

}

else

{ // 为其他星期情况时

printf("工作\n");

}

}

return 0; // 程序结束

}

运行程序,结果为:

请选择星期几:

6

和朋友去逛街

上面的代码表示整个 if 语句嵌套的操作过程,首先判断为休息日的情况,然后根据判断的结果选择相应的具体判断或者操作,过程如下:

通过第 14 行 if 语句判断今天是否为休息日。

如果,判断出今天是休息日,则继续判断今天是不是星期六。如果第 16 行 if 语句判断为真,那么执行第 18 行语句;如果不为真,那么执行第 22 行语句。也就是如果为星期六就和朋友逛街,如果为星期日就在家陪家人。

同理,外层的 else 语句表示工作日时的相应操作。

注意,在使用 if 语句嵌套时,应注意 if 语句与 else 语句的配对情况,else 语句总是会与其上面最近未配对的 if 语句进行配对。

相关内容

2025年腕表·手表十大品牌榜中榜
365bet怎么提现

2025年腕表·手表十大品牌榜中榜

📅 06-27 👁️ 2039
如何一步步取消微信公众号并删除相关信息
苹果电影哪里可以看到?全网正版平台观看指南及资源获取方案