可能重复:
What is a Question Mark “?” and Colon “:” Operator Used for?
Question mark in java code
我正在编写RBG到HSV转换器的代码。 我有这条线:
var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r);
我真的不明白什么是“?”而“:”在这里意味着。
答案 0 :(得分:3)
这是制定条件的简短方法:
Condition ? Statment1 : Statement2;
意味着
If (Condition) {Statement1} else {Statement2}
答案 1 :(得分:2)
这在java中称为三元运算符。
另一个条件运算符是?:,它可以被认为是if-then-else语句的简写(在本课程的控制流语句部分中讨论)。此运算符也称为三元运算符,因为它使用三个操作数。
如果第一个表达式结果为true,则将第二个操作数指定为值,否则将第三个操作数指定为值。
答案 2 :(得分:2)
其Ternary Operator
:
C = condition? A : B
相当于
if (condition){
C= A;
} else{
C= B;
}
它还支持嵌套,即C = condition1? A : condition2?D:E
,相当于
if (condition1){
C= A;
} else if (condition2){
C= D;
} else{
C= E;
}
答案 3 :(得分:1)
这意味着
if (r==minRGB)
d = g-b
else
if(b==minRGB)
d=r-g
else
d=b-r
答案 4 :(得分:0)
名为 ternary operator
(?:) : -
System.out.println(condition? value1 : value2);
上述表达式的评估如下: -
if (condition) {
System.out.println(value1);
} else {
System.out.println(value2);
}
答案 5 :(得分:0)
在基于c的语言中,它意味着: ? :
基本上是if-else的缩写。
答案 6 :(得分:0)
它的工作方式与if相似
if (r==minRGB)
d = g-b;
}else{
if (b==minRGB)
{
d = r-g;
}else{
d = b-r;
}
}