-1

可能重复:
什么是问号“?” 和冒号“:”运算符用于?
java代码中的问号

我正在为 RBG 到 HSV 转换器编写代码。我有这条线:

var d = (r==minRGB) ? g-b : ((b==minRGB) ? r-g : b-r);

我真的不明白什么是“?” “:”在这里表示。

4

7 回答 7

3

这是创建条件的简短方法:

  Condition ? Statment1 : Statement2;

方法

  If (Condition) {Statement1} else {Statement2}
于 2012-10-18T14:12:14.777 回答
2

这在java中称为三元运算符。

基于 java教程

另一个条件运算符是 ?:,它可以被认为是 if-then-else 语句的简写(在本课的控制流语句部分讨论)。该运算符也称为三元运算符,因为它使用三个操作数。

如果第一个表达式的结果为真,则将第二个操作数赋值为值,否则将第三个操作数赋值为值。

于 2012-10-18T14:10:18.773 回答
2

它的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;
 }
于 2012-10-18T14:11:47.253 回答
1

它的意思是

if (r==minRGB)
  d = g-b
else
  if(b==minRGB)
     d=r-g
  else
    d=b-r
于 2012-10-18T14:11:47.457 回答
0

它被称为ternary operator(?:) :-

System.out.println(condition? value1 : value2);

上面的表达式计算如下: -

if (condition) {
    System.out.println(value1); 
} else {
    System.out.println(value2);
}
于 2012-10-18T14:11:11.283 回答
0

在基于 c 的语言中,这意味着: ? :

基本上,它是 if-else 的简写。

于 2012-10-18T14:11:48.020 回答
0

它的工作原理类似于 if 而不是 else

if (r==minRGB)
    d = g-b;
}else{
    if  (b==minRGB)
    {
        d = r-g;
    }else{
        d = b-r;
    }
}
于 2012-10-18T14:12:27.083 回答