当前位置: 首页 > 知识库问答 >
问题:

嘿,有人能给我解释一下“?”和 ":"? [重复]

松灿
2023-03-14

我不知道“?”和“:”的用法。

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

共有2个答案

冯福
2023-03-14

完全相当于这个:

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

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

阎咏思
2023-03-14
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);

这意味着

条件?如果为真则执行:如果为假则执行

 类似资料:
  • 我有这两种方法。我理解“getTotalSalary”一词,但并不真正理解“getAverageSalary(获取平均工资)”的写作方式。我不明白为什么在结尾处使用问号和冒号以及“(size()!=0)”和0。 这是编码: empReg 是 ArrayList 的名称。员工是一个由“姓名”和“薪水”组成的阶级。getSalary 显然是一种返还薪水的方法。

  • 对于下面的方法,调用神秘(45)时,输出为“1 0 1 1 0:2 5 11 22 45”,我明白为什么“1 0 1 1 0:”打印出来,但不明白冒号后“2 5 11 22 45”是怎么打印出来的,有人能给我解释一下吗?我试着写出来,但就是想不通。

  • 我这里有一些关于Java的练习问题。我们应该在不使用编译器的情况下确定答案。 参考以下方法: 调用product(6)时的输出是什么? D)48 E)70 根据答案,正确的输出是48。我真的不明白为什么这是真的。6不符合基本情况,所以转到else语句。那么,乘积(6-2)=乘积(4),乘积(2)得到乘积(0),乘积(2)得到乘积(0),得到6*4,4*2,2*0,0*0。但那是32,不是48?是不

  • 日安, 我有一个问题,在我的代码中,一个声明在函数之外有一个错误。 谢谢

  • 我想写一个brainfuck口译员,但我错过了一些上下文或其他东西。应该被调用以处理“

  • 问题内容: 我已经阅读了数百篇有关Java中“ this”的解释,但是我真的很难理解它。我正在并行学习android和java,我知道这样做比较难,但是我很喜欢。我被杀死的一件事是“ this”。我正在粘贴下面一次使用“ this”的教程中的代码。我本打算只编写一段代码,但希望尽可能提供帮助。 我正在寻找可以添加到笔记中的“ this”的良好解释。任何和所有帮助表示赞赏。提前致谢。 示例代码从下面