关于 if 语句那些事。

本文详细介绍了C语言中if语句的基本用法,包括单分支和多分支选择,以及如何避免常见错误如悬空else和相等判断中的陷阱。强调了使用语句块的重要性。
摘要由CSDN通过智能技术生成

if语句是C语言分支语句(选择结构)中的一种。

1.if语句能够实现单分支选择

if(表达式)

    {

      语句;

    }

 {……}  称为语句块,里面可包含多个语句;当{}内的语句仅有一句时,{}可以省略。

以下是一个单分支选择的例子:

当你输入的数<18时,就会打印“未成年人”。

 2.if语句能够实现多分支选择

(1)多分支1.0的语句结构

if(表达式)

{

   语句1;

}

else

{

   语句2;

}

我们来举个例子,将刚刚写的代码稍微升级,请看: 

当我们输入的数<18,那么就会输出“未成年人”;else 代表的是if 以外的其他情况,比如当我们输入19时,18<19,所以它属于if 以外的情况,那么它就是符合else 的情况。所以当我们输入>18的数时,代码输出“成年人“。 

(2)多分支2.0

所谓2.0,不过是选择更多了,它的语法结构是:

if(表达式1)

{

语句1;

}

else if(表达式2)

{

语句2;

}

else

{

语句3;

}

我们再把刚写的代码继续升级!请看:

 

瞧,是不是选择更多了,多分支选择语句会从上到下依次判断,如果返回if的情况,那么执行if的语句;如果不满足if的情况,就继续判断。

当我们输入44时,显然不满足if和第一个else  if的情况,但满足第二个else if,那就执行第二个else if的语句。

从这里,我想你也看出来了,else if(表达式)的数量不是唯一的,可以多个! 

3.关于()内的表达式

 如果满足表达式,那么表达式即为真,则执行语句;

如果不满足表达式,那么表达式即为假,则不执行语句。

那真和假到底具体来说是什么呢?

在C语言中,0表示假,非0表示真

4.我们接着提一下语句块——{……}

当你想要满足if时实现多条语句执行的效果就需要{},例如:

当我们输入满足if条件的数时,输出的结构是:

 花括号{}包起来的语句可以看成一个整体,当满足if时,就执行整个整体。若是将  printf("不能谈恋爱\n");  拒之门外,那么会是什么样的效果呢?让我们试试!

你看,这样就会发生一些问题,明明是19岁了,还不能谈恋爱,这不是错了吗。

所以为了避免这种错误,我们要养成加{}的好习惯! 

5.使用if语句可能遇到的问题

(1)悬空else

你一定很吃惊吧,为什么代码结果是什么都不输出?

这是因为else的匹配机制,else是与和它最近的if匹配的。 

(2)if(表达式)中的判断两个数是否相等时,将==写成=。

在C语言中,”==“表示比较两个数是否相等,”=“表示将赋值。

if(a=4)

这是每个人都会反这样的错误,这样一来就不是判断了,而是表示赋值,将4赋值给a,造成错误,因为当4赋值给a时,a的值恒为非0,即恒为真。 

当然预防的办法也有,我们可以将”==“两边的表达式换位。

if(4==a)

这样的效果是:即使只写一个=,编译器就会发生错误,告诉你要改正。 

以上是我所知的关于if语句的所有了,欢迎大家来观看和补充,欢迎提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值