当前位置:编程学习 > JAVA >>

菜鸟提问,关于if语句的条件判断


   请问if语句进行多条件判断的时候,有没有顺序的啊?


   
   if( str == null || str.equals(""))
   {
       //TODO:.......
   }

   编译器,在遇到上面的if语句时,是先判断“str == null”,还是先判断“str.equal.s("")”

   

   if( str != null && str.equals("test"))
   {
       //TODO:.......
   }
--------------------编程问答-------------------- ||运算,先判断||前面的条件,
1 如果不满足,则继续判断||后面的条件
2 如果满足条件,则不再判断||后面的条件
所以相当于短路,前者通,则后者被短路不会导电

&&运算,先判断&&前面的条件
1 如果不满足,则不在继续判断&&后面的条件
2 如果满足,则继续判断&&后面的条件
所以相当于断路,前者不通,则后者就断路不会继续导电 --------------------编程问答--------------------
引用 1 楼  的回复:
||运算,先判断||前面的条件,
1 如果不满足,则继续判断||后面的条件
2 如果满足条件,则不再判断||后面的条件
所以相当于短路,前者通,则后者被短路不会导电

&&运算,先判断&&前面的条件
1 如果不满足,则不在继续判断&&后面的条件
2 如果满足,则继续判断&&后面的条件
所以相当于断路,前者不通,则后者……

说的相当的好 --------------------编程问答--------------------
引用 1 楼  的回复:
||运算,先判断||前面的条件,
1 如果不满足,则继续判断||后面的条件
2 如果满足条件,则不再判断||后面的条件
所以相当于短路,前者通,则后者被短路不会导电

&&运算,先判断&&前面的条件
1 如果不满足,则不在继续判断&&后面的条件
2 如果满足,则继续判断&&后面的条件
所以相当于断路,前者不通,则后者……



也就是说,都是从前面的开始做判断吗~~

原来如此~~

以前记得听老师说过 , 这种多条件判断要分开来写的,
防止某些编译器会先判断后面的条件,导致程序出错。
例如:
if(str != null)
   if(str.equals("test")
      //TODO:....


--------------------编程问答--------------------
引用 3 楼  的回复:
以前记得听老师说过 , 这种多条件判断要分开来写的,
防止某些编译器会先判断后面的条件,导致程序出错。
例如:
if(str != null)
  if(str.equals("test")
  //TODO:....


老皇历,Java中不存在。

我依稀记得从右到左,我所接触过的,也就C语言的函数调用传参时是这么玩的。 --------------------编程问答-------------------- if( null == str || "".equals(str)) //这样写比较好
  {
  //TODO:.......
  } --------------------编程问答-------------------- 怕的就写成&,分别提示,但是一样会给电到。 --------------------编程问答-------------------- @Test public void pro(){
int i = 1;
int a = 2;
int c = 'a';
char cc = (char)'a';

if((i == 1) && ((a+=2)==3) ){
System.out.println(" a : " + a + " i :" + i);
}
a=2;
if(i == 1 || ((a+=2)==5)){
System.out.println(" a : =" + a + " i :" + i);
}
}

逻辑短路,会产生影响 --------------------编程问答-------------------- “||”这个是逻辑运算符短路与,结果是布尔型的,先计算左边的,若左边的为true则不再计算右边的了。比如a||b若a为true则进行下一语句,若为false则在计算b --------------------编程问答--------------------
引用 1 楼  的回复:
||运算,先判断||前面的条件,
1 如果不满足,则继续判断||后面的条件
2 如果满足条件,则不再判断||后面的条件
所以相当于短路,前者通,则后者被短路不会导电

&&运算,先判断&&前面的条件
1 如果不满足,则不在继续判断&&后面的条件
2 如果满足,则继续判断&&后面的条件
所以相当于断路,前者不通,则后者……
  说的太好了 鼓掌
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,