if代码块的意思是:如果这个决策的判定结果为真,那就执行与if代码块相关联的大括号内的代码(若无大括号则是与if语句相邻的第一条语句),否则就转到if代码块后面的代码。
else语句默认包含了其他的情况——若其他if语句经判定都不为true,那就要执行else语句块中的代码。
而在if-else if-else嵌套语句中,一旦有一个布尔表达式计算为true时,对应的if或者else if的真条件语句就会被执行,然后控制流程会转移到跟随在整个的if-else if-else结构之后的第一条语句。
上面的关于嵌套语句的说法有点绕,那我们来阐述一下if嵌套语句疑点:那就是如果if判定语句为true执行完if语句的代码块后,是否会执行与if语句对应的else语句的代码块?答案是否定的。接下来我用一个伪代码画的关于if语句嵌套的图,来帮助理解帮助。
对与上图我们可以这么理解:只要四边形(即图中说的砵)中有一个判定语句为true,执行完对应的代码块后,那就跳出整个嵌套四边形,执行嵌套四边形之外的第一条语句。
以下是示例1代码如下:
- if(test1)
- {
- //代码1
- }
- else
- {
- //代码2
- }
- //代码3
示例1代码的执行顺序是:
◆如果test1为true,那就执行代码1。执行完代码1后,执行代码3。
◆如果test1为false,那就跳转到代码2。执行完代码2后,执行代码3.
接下来是示例2代码如下:
- if(test1)
- {
- //代码1
- }
- if(test2)
- {
- //代码2
- }
- else
- {
- //代码3
- }
- //代码4
示例2代码的执行顺序是:
◆如果test1为true,就执行代码1。执行完代码1后,跳到带有test2的if语句。
◆如果test1为false,那就跳到带有test2的if语句。
◆如果test2为true,那就跳转到代码2。执行完代码2后,直接执行代码4.
◆如果test2为false,那就跳转到else语句。执行完代码3后,执行代码4.
最后是示例3的代码如下:
- if(test1)
- {
- //代码1
- }
- else if(test2)
- {
- //代码2
- }
- else
- {
- //代码3
- }
- //代码4
示例3代码的执行顺序是:
◆如果test1为true,就执行代码1。执行完代码1后,直接执行代码4。
◆如果test1为false,那就跳到带有test2的else if语句。
◆如果test2为true,那就跳转到代码2。执行完代码2后,直接执行代码4.
◆如果test2为false,那就跳转到else语句。执行完代码3后,执行代码4.
转载于:https://blog.51cto.com/dhb51/795546