朋友们!我想问一下&&和||。如果使用双 & 并且第一个表达式为假,则甚至不会检查第二个表达式,因为 不管怎样,整个表达式都是假的。使用一个 & 符号,将评估两个条件。
一切都很清楚,但是在 PL 中使用双 & 符号有意义吗?我看了看,用过,老实说不明白为什么他们想出了其中的 2 个。我所有的结果都是一样的。
public static void main(String[] args) {
int a = 2;
int b = 3;
int c = 4;
if (a == 2 && b == 3){
System.out.println("Hello");
}else{
System.err.println("Error");
}
}
是的,我知道使用 && 它会检查第一个值,如果它是假的,那么它甚至不会进一步检查,那么问题是:在这种情况下是否需要 &(单与号)?请写示例,& 和 && 之间的区别在哪里,它们的工作方式不同,因为我只看到了相同的工作。
|and运算符||是逻辑运算ИЛИ符。它的工作原理是这样的:如果至少有一个条件true,那么所有的结果都是真的。也就是说,如果一个条件false是 ,而另一个是true,则结果为真。&and运算符&&是逻辑运算И符。它的工作原理是这样的:如果至少有一个条件false是 ,那么结果是false。也就是说,要使结果为true,两个条件都必须为true。假设您有这张支票:
checkFirst() && checkSecond().boolean方法checkSecond():并且此铭文可能会或可能不会显示在控制台中。如果您指定
&了 ,那么它将始终显示,即使它checkFirst返回false。那些。有时您希望同时检查这两个条件,而不管它是否会影响任何事情。但&&它是为了提高性能而发明的,你永远不知道你有哪些繁琐的检查——这样它们就不会再次被执行。PS Andrey NOP在关于副作用的问题的评论中写道,
println以上只是一个副作用。相反println,可能会将某些值分配给重要字段等。升级版:
结论:
最简单的例子。假设我们有一个大小为 10 的数组:
如果
i >= 10在第二种情况( )中,在检查条件时,会&尝试访问数组边界之外的元素,在第一种情况(&&因为条件的左边是假的)。在某些情况下,需要评估逻辑运算符的两个操作数是否会出现副作用:
如果程序的逻辑要求必须计算逻辑运算符的第二个操作数,则应使用常规形式而不是缩短形式的逻辑运算。
资料来源:赫伯特·希尔特。Java 8. 初学者指南,第 78 页
如果在二进制文件中,图片后面跟着另一张图片。然后 && 只会找到最上面的第一张图片的标题 ffd8ffe0,如果遇到 ffd9ffd8ffe0 则忽略 ffd8ffe0 ,从而跳过最下面的图片。a & 将找到所有图片