一. 深入解析if语句
之所以会有这么多种格式的if语句,是为了应对不同的情况,对一个领域划分的更为细致了。从格式1到格式3,if语句的划分从部分到达了全部。从部分域扩大为了全域。
我们来写一下if的三种格式
1. 第一种格式
if (条件表达式)
{
执行语句; // 格式1是给定的数据进行一次判断,结果为true,则操作控制范围内的执行语句;如果条件表达式判断为false,则退出if语 // 句, 按照顺序接着执行主函数中余下的语句。只有是真,才进来操作,不是真的话,直接跳过if控制的语句。
}
2. 第二种格式
if (条件表达式) // if (条件表达式)后面没有分号的原因在于,这个if语句是独立存在的一块,有自己的控制范围,加上分号后,就变成了 { // 主函数的执行语句。
执行语句;
}
else
{
执行语句; //格式1是进行了一次,真的情况下是怎么操作;格式2是进行两次判断,真的情况下怎么操作,假的情况下怎么操作。
}
3. 第三种格式
进行多次判断,书写形式和之前两种也不一样。
if (条件表达式)
{
执行语句;
}
else if (条件表达式) // if语句的使用可以和集合区间的知识点联系起来,通过条件表达式和else划分好区间,每个区间里都有对应的执行
{ // 的执行语句。前提信息落在那个区间,就执行哪种语句。当然对于前提所在的区间,计算机是一步步进行判断
执行语句; // 的,哪一步判断成立,就在哪一步执行,否则就退出。
}
..... // 这里省略的就是else if,最后一个就是直接写else
else
{
执行语句;
}
二. if第三种格式的解析
if第三种格式在结构上是由多代码块组成,但运行的时候,只能有一个执行,这是一个单条语句。这里是说整个if语句是单条语句?
else的出现,就是对前面的否定,只有前面否定了,才能执行到else后面的语句。
下面这个例子,几个区间的划分是有问题的,但是由于先执行了前面的代码,执行完了就直接退出if语句了,哪怕后面错误,也不会管。
对上面的程序进行一个变化,情况如下:
三. if语句的扩展
很多时候,并非if语句的三种格式单纯地存在,而是有着一个嵌套的形式。
int x=3,y=2; // 嵌套的存在就是多个不同的判断交叉在一起。
进一步地提出一个问题,上面的程序中,有六对{},其中哪对可以省略。
答:程序中所有的{}都可以省去,为什么?对于单条语句的概念还是不理解。
注意:语句的结束有两种类型,一种是分号,另一种是大括号的形式(大括号就是{})。
还没到大括号结束,分号就将if语句结束了。if(false)就相当于没有控制体。
为什么会有if(false)的情况,里面为什么有false这样的条件语句,很奇怪,没看懂?
通过截图,我们了解到,条件表达式最终是要得出一个boolean数据,不用管事算出来的还是直接写的。