嘿,有人可以解释一下“?”的用法吗?和“:”?

时间:2019-04-04 10:10:32

标签: java

我不知道使用“?”和“:”。

return value < current.value
                ? containsNodeRecursive(current.left, value)
                : containsNodeRecursive(current.right, value);

2 个答案:

答案 0 :(得分:0)

完全等同于此:

if (value < current.value) {
    return containsNodeRecursive(current.left, value);
else {
    return containsNodeRecursive(current.right, value)
}

只是一种更紧凑的编写方式。通常用于简短的if / else条件,而不使用五行代码,而仅使用一行。

答案 1 :(得分:0)

return value < current.value
            ? containsNodeRecursive(current.left, value)
            : containsNodeRecursive(current.right, value);

等于

if (value < current.value)
    return containsNodeRecursive(current.left, value)
else
    return containsNodeRecursive(current.right, value);

这意味着

条件?如果为真,则为真