gpt4 book ai didi

Java逻辑运算符短路

转载 作者:行者123 更新时间:2023-12-02 05:00:30 25 4
gpt4 key购买 nike

哪个集合是短路的,复杂条件表达式短路到底意味着什么?

public static void main(String[] args) {
int x, y, z;

x = 10;
y = 20;
z = 30;

// T T
// T F
// F T
// F F

//SET A
boolean a = (x < z) && (x == x);
boolean b = (x < z) && (x == z);
boolean c = (x == z) && (x < z);
boolean d = (x == z) && (x > z);
//SET B
boolean aa = (x < z) & (x == x);
boolean bb = (x < z) & (x == z);
boolean cc = (x == z) & (x < z);
boolean dd = (x == z) & (x > z);

}

最佳答案

&&||运算符“短路”,这意味着如果没有必要,它们不会计算右侧。

&|运算符,当用作逻辑运算符时,总是对两边求值。

每个算子只有一种短路情况,分别是:

  • false && ... - 没有必要知道右边是什么,因为结果只能是 false不管那里的值(value)
  • true || ... - 没有必要知道右边是什么,因为结果只能是 true不管那里的值(value)

让我们通过一个简单的示例来比较一下行为:

public boolean longerThan(String input, int length) {
return input != null && input.length() > length;
}

public boolean longerThan(String input, int length) {
return input != null & input.length() > length;
}

第二个版本使用非短路运算符 &并会抛出 NullPointerException如果inputnull ,但第一个版本将返回 false无一异常(exception)。

关于Java逻辑运算符短路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com