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语句的所有了,欢迎大家来观看和补充,欢迎提问。