我正在为 RBG 到 HSV 转换器编写代码。我有这条线:
var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r);
我真的不明白什么是“?” “:”在这里表示。
我正在为 RBG 到 HSV 转换器编写代码。我有这条线:
var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r);
我真的不明白什么是“?” “:”在这里表示。
这是创建条件的简短方法:
Condition ? Statment1 : Statement2;
方法
If (Condition) {Statement1} else {Statement2}
这在java中称为三元运算符。
基于 java教程
另一个条件运算符是 ?:,它可以被认为是 if-then-else 语句的简写(在本课的控制流语句部分讨论)。该运算符也称为三元运算符,因为它使用三个操作数。
如果第一个表达式的结果为真,则将第二个操作数赋值为值,否则将第三个操作数赋值为值。
它的Ternary Operator
:
C = condition? A : B
相当于
if (condition){
C= A;
} else{
C= B;
}
它还支持嵌套 ie C = condition1? A : condition2?D:E
,相当于
if (condition1){
C= A;
} else if (condition2){
C= D;
} else{
C= E;
}
它的意思是
if (r==minRGB)
d = g-b
else
if(b==minRGB)
d=r-g
else
d=b-r
它被称为ternary operator
(?:) :-
System.out.println(condition? value1 : value2);
上面的表达式计算如下: -
if (condition) {
System.out.println(value1);
} else {
System.out.println(value2);
}
在基于 c 的语言中,这意味着: ? :
基本上,它是 if-else 的简写。
它的工作原理类似于 if 而不是 else
if (r==minRGB)
d = g-b;
}else{
if (b==minRGB)
{
d = r-g;
}else{
d = b-r;
}
}