这两个java程序为何运行结果不同,求java大神
第一个程序:classTest{publicstaticvoidmain(String[]args){inta=5,b=1;booleanc=(a<10)||(++b>=...
第一个程序: class Test{
public static void main(String[] args){
int a=5,b=1;
boolean c=(a<10)||(++b>=2);
System.out.println("b="+b+",c="+c);
}
} 运行结果是b=1,c=ture
第二个程序:
class Test{
public static void main(String[] args){
int a=5,b=1;
boolean c=(a<10)&&(++b>=2);
System.out.println("b="+b+",c="+c);
}
} 运行结果是b=2,c=ture
两个程序只有boolean那一行的 ||(双或)和&&(双与)有点区别,但运行结果就不同了 展开
public static void main(String[] args){
int a=5,b=1;
boolean c=(a<10)||(++b>=2);
System.out.println("b="+b+",c="+c);
}
} 运行结果是b=1,c=ture
第二个程序:
class Test{
public static void main(String[] args){
int a=5,b=1;
boolean c=(a<10)&&(++b>=2);
System.out.println("b="+b+",c="+c);
}
} 运行结果是b=2,c=ture
两个程序只有boolean那一行的 ||(双或)和&&(双与)有点区别,但运行结果就不同了 展开
2个回答
展开全部
首先你要明白“或”和“与”的区别,以及“|”和“||“,”&“ 和 ”&&“ 的区别。
双的家伙比单个的运行效率要高。||也成短路或,&&也成短路与。短路是物理学中的一种概念。再计算机中也是判断中断的意思。
比如:c=(a<10)||(++b>=2),如果c=(a<10)的条件成立,那么或这个概念已经成了,那么后面的(++b>=2)就不需要执行,这就是短路的概念。当然这里如果你用单|,那么就算前面的条件成立,后面的条件还是会执行。如果后面的操作是赋值操作,那么|和||的结果就完全不同。
同理&&,c=(a<10)&&(++b>=2),前面的条件不成立,那后面的条件就不会判断。因为后面的条件不会执行,所以效率就高。
你问的这个问题完全不需要有所疑问,因为 ||和&&的意思完全不同,执行的结果当然完全不同。 而如果你问的是 |和||,就是我上面说的单和双的区别,那么我还会高看你一眼。
双的家伙比单个的运行效率要高。||也成短路或,&&也成短路与。短路是物理学中的一种概念。再计算机中也是判断中断的意思。
比如:c=(a<10)||(++b>=2),如果c=(a<10)的条件成立,那么或这个概念已经成了,那么后面的(++b>=2)就不需要执行,这就是短路的概念。当然这里如果你用单|,那么就算前面的条件成立,后面的条件还是会执行。如果后面的操作是赋值操作,那么|和||的结果就完全不同。
同理&&,c=(a<10)&&(++b>=2),前面的条件不成立,那后面的条件就不会判断。因为后面的条件不会执行,所以效率就高。
你问的这个问题完全不需要有所疑问,因为 ||和&&的意思完全不同,执行的结果当然完全不同。 而如果你问的是 |和||,就是我上面说的单和双的区别,那么我还会高看你一眼。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询