黑马程序员技术交流社区

标题: if语句一些疑问 [打印本页]

作者: ldk1991125    时间: 2016-6-25 10:01
标题: if语句一些疑问
if(表达式1){
语句块1;
}
if(表达式2){
语句块2;
}
然后有一个else连接的情况
if(表达式1){
语句块1;
} else if(表达式2){
语句块2;
}
这两种语句区别在哪里?
作者: blackcard    时间: 2016-6-25 22:35
        //这种通常这2个if的表达式的量不会有太多关系
        if(表达式1)
        {
        语句块1;        //如果表达式1为真,则执行语句1;如果表达式1为假,则继续程序
        }
        if(表达式2)
        {
        语句块2;        //如果表达式2为真,则执行语句2;如果表达式2为假,则继续程序
        }
       
        //这种通常表达式1和表达式2的内容有较高的相关度
        if(表达式1)
        {
        语句块1;        //如果表达式1为真,则执行语句1,后面的不执行了;如果表达式1为假,则进入else if判断
        }
        else if(表达式2)
        {
        语句块2;        //如果表达式2为真,则执行语句2,;如果表达式2为假,则继续程序
        }

不知道能不能方便你理解~~
作者: FFFF001    时间: 2016-6-25 22:48
如果前面的 表达式 为假,才会执行else if。
作者: ldk1991125    时间: 2016-6-25 22:59
blackcard 发表于 2016-6-25 22:35
//这种通常这2个if的表达式的量不会有太多关系
        if(表达式1)
        {

也就是说在第一个结构里,不论第一个if表达式是否成立,第二个都会判断一次是否执行;在第二个结构里,只有第一个表达式为假,才会继续判断第二个if语句。是这样么
作者: blackcard    时间: 2016-6-25 23:07
ldk1991125 发表于 2016-6-25 22:59
也就是说在第一个结构里,不论第一个if表达式是否成立,第二个都会判断一次是否执行;在第二个结构里,只 ...

是的 因为在第一个里面 其实就是 进行了 2次独立的判断, 比如你可以先判断A真假,再判断B真假,但是A和B之间可以没有什么关系,而后者else if是对前面if的判断假之后的一种补充判断~~~
作者: blackcard    时间: 2016-6-25 23:09
ldk1991125 发表于 2016-6-25 22:59
也就是说在第一个结构里,不论第一个if表达式是否成立,第二个都会判断一次是否执行;在第二个结构里,只 ...

是的 因为在第一个里面 其实就是 进行了 2次独立的判断, 比如你可以先判断A真假,再判断B真假,但是A和B之间可以没有什么关系,而后者else if是对前面if的判断假之后的一种补充判断~~~
作者: 你的昵称    时间: 2016-6-29 11:16
这个就很基础了,看书就能明白了!else if相当于 if 的扩展 if 下雨{XXX} else if 下雪{XXX};
作者: SSIrreplaceable    时间: 2016-7-1 09:56
<一>:
if(表达式1){
语句块1;
}
if(表达式2){
语句块2;
}
如上,当单独出现两个if时,每个if都要执行。
<二>:
if(表达式1){
语句块1;
} else if(表达式2){
语句块2;
}
如上,当两个if之间有一个else时,先执行第一个if的表达式1,为真是只执行语句块1,余下的都不执行了;表达式1为假时,就执行表达式2,表达式2为真时执行语句块2,表达式2为假时什么都不执行。


作者: jilaiyuan    时间: 2016-7-3 00:17
很简单:
第一种写法,表达式1和表达式2都会计算,哪个为真就执行哪个,两个都为真,则语句块1和2都执行。

第二种写法,先计算表达式1,如果它为真,就执行语句块1,执行完后跳过else if 后面的语句。如果表达式1为假,则计算表达式2。
作者: wangxiaopang    时间: 2016-7-8 23:32
第一种语句
作者: wangxiaopang    时间: 2016-7-8 23:36
第一种语句
if(表达式)//当上面这个表达式的条件成立的时候才会执行下面花括号里的代码
{

}else    //如果上面的表达式条件不成立,就会执行else 花括号中的代码
{

}
第二种语句
if(表达式1)
{
语句块1;//当表达式1条件成立的时候,执行语句块1
} else if(表达式2)
{
语句块2;//如果表达式1不条件成立,程序就会往下执行判断表达式2条件是否成立,成立则执行语句块2,不成立就不执行
}
作者: kakam    时间: 2016-7-11 00:21
明显不同:
两个条件互不相关,没有影响:
第一个好比:如果是本科毕业生应该怎么样+家如果在外地的应该怎么样!
而第二个意思则是:如果神本科生应该怎么样,不是本科生在外地的应该怎么样!

也就是说第二个条件的集合中对于第一个集合的有无不一样!
         
作者: 不想长大    时间: 2016-7-11 01:05
这两种没什么区别吧,后一个应该还有个else才完整吧
作者: wjk930726    时间: 2016-7-11 01:38
范围不同,第二个的范围更大.具体楼上都有解释,并不相同.
作者: 不想长大    时间: 2016-7-12 00:39
不想长大 发表于 2016-7-11 01:05
这两种没什么区别吧,后一个应该还有个else才完整吧

这都被你看出来了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2