黑马程序员技术交流社区

标题: 关于if的选择语句 [打印本页]

作者: 李晓斌    时间: 2011-12-2 23:34
标题: 关于if的选择语句
本帖最后由 李晓斌 于 2011-12-2 23:57 编辑

if (条件)
{执行语句}
else if (条件)
{执行语句}
else if (条件)
{执行语句}
如果把上面两个else if 句全部写成if语句的话,那和原来的有什么区别嘛?(如下这个和我最上面那个比较的话)
if (条件)
{执行语句}
if (条件)
{执行语句}
if (条件)
{执行语句}


作者: 肖岑锋    时间: 2011-12-2 23:51
本帖最后由 肖岑锋 于 2011-12-2 23:52 编辑

要看是什么情况下。一般来说,只是判断条件的话,就没有区别。
如果是下面这两个程序的话,就有点区别了:
第一个:
a = 11;
if(a>10){
        System.out.println(a);
              a = 4;
}
if(a<10){
          System.out.println(a);
}
第二个:
if(a>10){
        System.out.println(a);
              a = 4;
}
else if(a<10){
          System.out.println(a);
}
很明显,第一个输出11跟4。而第二个输出11。
就是说,如果if/if的话,判断了第一个if执行后,会再次判断第二个if,如果符合继续执行。如果是if/else if的话,判断条件只执行其中一个。
作者: 李晓斌    时间: 2011-12-2 23:57
肖岑锋 发表于 2011-12-2 23:51
要看是什么情况下。一般来说,只是判断条件的话,就没有区别。
如果是下面这两个程序的话,就有点区别了:
...

明白了,谢啦:lol
作者: 许邦存    时间: 2011-12-3 00:02
同意楼上的说法,如果是if/if的话,判断了第一个if执行后,会再次判断第二个if,而且判断的条件语句没有必然的联系,如果符合都可以执行。如果是if/else if的话,判断条件则应该没有任何的交集,程序只能选择执行其中一个。 差不多睡了,奋斗的小马们,晚安。
作者: zclove898    时间: 2011-12-3 00:05
if (条件)
{执行语句}
else if (条件)
{执行语句}
else if (条件)
{执行语句}
这是一个多重判断语句。用来判断多个条件,这是一个语句。
而这个程序:
{执行语句}
if (条件)
{执行语句}
if (条件)
{执行语句}
是由多个单个的if语句组成的。iif语句只能判断一个条件,而if……elseif……elseif……else是可以用来判断多个条件。
希望对你有点帮助
作者: 刘志祥    时间: 2011-12-4 12:01
简单讲:楼主上边的代码是一句代码,下边的代码是三句代码。
上边的只会执行其中的一句,先作判断,只要有一个条件的值为true,就执行,后边的代码就不作判断的(即使后边可能有满足的条件)。
下边的代码对于同一个条件会分别判断,因为它是三条独立的语句,会顺序执行。

作者: 应国炎    时间: 2011-12-4 17:02
简单的说:
if else 有排除功能,可以缩小范围,所以如果执行语句顺序不同,则结果也会不同,当然有些语句也就会执行不到。
if if则之间没有必然联系,全部都会再判断一遍,if执行语句谁前谁后,没有必然的关系,只要是满足条件则都会执行到




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