Java 返回t==null-1:t.身高;你怎么办?你的意思是什么?
我在计算AVL树节点的高度时遇到了以下代码:Java 返回t==null-1:t.身高;你怎么办?你的意思是什么?,java,conditional-statements,Java,Conditional Statements,我在计算AVL树节点的高度时遇到了以下代码: private int height (AvlNode<T> t) { return t == null ? -1 : t.height; } 这是什么意思?和:平均值?这是一个三元运算符。一般语法为: cond ? ifTrue : ifFalse 其中cond是返回布尔值的表达式。当cond为true时,整个表达式的整体计算结果为ifTrue,否则计算结果为ifFalse。当然,ifTrue和ifFalse必须是兼容的类型。
private int height (AvlNode<T> t) {
return t == null ? -1 : t.height;
}
这是什么意思?和:平均值?这是一个三元运算符。一般语法为:
cond ? ifTrue : ifFalse
其中cond是返回布尔值的表达式。当cond为true时,整个表达式的整体计算结果为ifTrue,否则计算结果为ifFalse。当然,ifTrue和ifFalse必须是兼容的类型。请注意,对象可以为null
实际上,上述规范与以下规范完全相同:
if (t == null)
return -1;
return t.height;
这是在许多语言中发现的一个非常经典的运算符。一种没有这个操作符的语言是Python。这是一个三元操作符。一般语法为:
cond ? ifTrue : ifFalse
其中cond是返回布尔值的表达式。当cond为true时,整个表达式的整体计算结果为ifTrue,否则计算结果为ifFalse。当然,ifTrue和ifFalse必须是兼容的类型。请注意,对象可以为null
实际上,上述规范与以下规范完全相同:
if (t == null)
return -1;
return t.height;
这是在许多语言中发现的一个非常经典的运算符。Python是一种没有此运算符的语言。如果t为null,它将返回-1,否则它将返回t.hight。这是一种更干净的方法来实现空检查,而不是
if(t==null)
return -1
else
return t.hight
但是它看起来可能比if方法更神秘,如果t为null,它将返回-1,否则它将返回t.hight。这是一种更干净的方法来实现空检查,而不是
if(t==null)
return -1
else
return t.hight
(a > b) ? a : b;
但它可能比if方法看起来更神秘
(a > b) ? a : b;
是一个表达式,返回两个值中的一个,即
或者b。测试条件a>b。如果这是真的,第一个
返回值a。如果为false,则第二个值b为
返回。返回的值取决于条件
测试,a>b。条件可以是返回
布尔值
是一个表达式,返回两个值中的一个,即
或者b。测试条件a>b。如果这是真的,第一个
返回值a。如果为false,则第二个值b为
返回。返回的值取决于条件
测试,a>b。条件可以是返回
布尔值
这就像一个if测试
您的示例与以下代码类似:
if (t == null) return -1;
else return t.height;
这就像一个if测试
您的示例与以下代码类似:
if (t == null) return -1;
else return t.height;
这相当于:
if (t==null)
return -1;
else
return t.height;
条件运算符?:
用于根据第一个表达式的值返回任一表达式的结果
它的工作原理是计算布尔表达式,然后决定计算哪个表达式。它等效于:
if (t==null)
return -1;
else
return t.height;
条件运算符?:
用于根据第一个表达式的值返回任一表达式的结果
它的工作原理是计算布尔表达式,然后决定要计算哪个表达式。python有类似的ifTrue if cond elseifFalse@furas是的,但不是sepython的这个操作符,如果条件是其他的,它也有类似的东西ifFalse@furas是的,但不是这个操作员本身