菜鸟提问,关于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 如果满足,则继续判断&&后面的条件
所以相当于断路,前者不通,则后者就断路不会继续导电 --------------------编程问答--------------------
说的相当的好 --------------------编程问答--------------------
也就是说,都是从前面的开始做判断吗~~
原来如此~~
以前记得听老师说过 , 这种多条件判断要分开来写的,
防止某些编译器会先判断后面的条件,导致程序出错。
例如:
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 --------------------编程问答-------------------- 说的太好了 鼓掌
补充:Java , Java相关