可能重复:
What is the Java ?: operator called and what does it do?
在某些代码中,?
用于执行数学方程式。
它是什么以及如何使用它?是否有可能提供一个例子和方程式最终答案的原因?
int count = getChildCount();
int top = count > 0 ? getChildAt(0).getTop() : 0;
答案 0 :(得分:9)
基本上是三元运算符:
String mood = (isHappy == true)?"I'm Happy!":"I'm Sad!";
如果isHappy,那么“我很开心!”。 “我伤心!”否则。
答案 1 :(得分:4)
我认为你的意思是x = () ? y : z;
符号?如果是这种情况,那么括号内的表达式将被评估为布尔值,如果true
x = y
则x = z
答案 2 :(得分:4)
int count = getChildCount();
int top = count > 0 ? getChildAt(0).getTop() : 0;
表示如果getChildAt(0).getTop()
变量大于0,则top变量将包含count
的值,否则它将等于0
答案 3 :(得分:2)
我的猜测是你指的是ternary operator,就像这样使用:
<some condition> ? <some value> : <some other value>;
例如:
int max = a > b ? a : b;
这是if
的简写,相当于:
int max;
if (a > b) {
max = a;
} else {
max = b;
}
但允许在代码中使用单行结果。
如果使用得当,由于其简洁性,它可以使代码更加清晰。但是,如果行变得太长或太复杂,建议谨慎行事:当条款简短时,代码只能保持可读性。
答案 4 :(得分:0)
评估表达式中的?
称为三元运算符。它基本上是if() ... else
块的简写。
答案 5 :(得分:0)
我假设你指的是ternary operator。它是某些if语句的简写。你在哪里做作业,比如:
int dozen = (bakersDozen) ? 13 : 12;
假设bakersDozen
为真,则dozen
为13.如果为假,则为12。
答案 6 :(得分:0)
int result = (a > b) ? 1 : 0;
与
相同int result;
if (a > b)
result = 1;
else
result = 0;
答案 7 :(得分:0)
?通常是三元(或三级)运算符。所以让我们来解释它在做什么。
myValue = (a = b) ? 1 : 0;
第一部分是你的病情。 “等于b吗?”
第二部分是真实的回应。
第三部分是虚假回应。
因此,如果a等于b,则myValue将为1.如果a不等于b,则myValue将为0.