短路与

目录导航

定义

JAVA的定义

短路与是JAVA语言中的一个逻辑运算符,记作&&,与编程语言中的与逻辑相似,但具有短路性质。

符号为:&&。

A&&B, 当A为false时,不去计算B的值而直接返回false;当A为true时,计算B的值。

短路性质

所谓短路性质,可以用代码片段解释如下:

int i=5;

boolean j=false&&(i++>5); // 看清这个表达式,想想看执行完这句后i的值应该多少

System.out.println(i); // java中输出变量i的值,i的值为5,所以当第一个值为false并且看到后面的操作符为&&的时候,不再往下计算。

boolean j=false&(i++>5);

System.out.println(i); // 将会发现输出的值为6,所以当第一个值为false并且看到后面的操作符为&的时候,还要往下计算

所以在Java编程中,对于&&和||,Java只看第一个操作数的值,对于&&,如果第一个值为false,那么第二个不再计算,如果第一个值为true,那么还要计算第二个值;对于||,若果第一个值为false,那么还要计算第二个值,如果第一个值为true,那么第二个值不会计算;对于&和|操作符,两边无论如何都计算。

编译运行后,输出结果为5。这就是短路与。短路与执行的顺序是从左到右,在确定第一个表达式值为假之后就没有必要执行第二个条件句的必要了。因为很明显,不管第二个条件的真假,整个式子的布尔值一定为假。短路与会跳掉第二个条件句,不去执行它。基于这些原理,便出现了上述结果。在编程中灵活运用短路与,有很大的意义。

类似操作符

短路操作,除了与外,还有短路或。短路或是在第一个条件为真时,跳过第二个条件表达式、不去执行。

不同语言中的差异

不同编程语言的逻辑操作符定义不尽相同,这对编程学习者来说是十分重要的。首先,我们可以通过类比来得出相似性,方便学习。同时,也要注意差别,不要让自己陷入误区。

这里我们来比较下C语言和JAVA中的逻辑操作符。

在java中有专门的短路逻辑操作符,还有专门的非短路逻辑操作符。不准短路的逻辑操作符有,逻辑与&、逻辑或|。用这种逻辑操作符时,计算机默认不进行短路。

但我们对比下C语言。C语言中的逻辑操作只有&&,||这种叠字的,本身具有短路能力,但不提供不具有短路能力的&和|。而且值得注意的是,在C中,我们称&&、||就是逻辑与、逻辑或,却不去在名称中强调他们的短路特性,虽然他们居于短路这一特性。

相关百科
返回顶部
产品求购 求购