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チュートリアルに基づく
もう1つの条件演算子は?:です。これは、if-then-elseステートメントの省略形と考えることができます(このレッスンの「制御フローステートメント」セクションで説明します)。この演算子は、3つのオペランドを使用するため、3項演算子とも呼ばれます。
最初の式の結果がtrueの場合は、2番目のオペランドを値として割り当て、それ以外の場合は3番目のオペランドを値として割り当てます。
その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;
}
その意味は
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 (r==minRGB)
d = g-b;
}else{
if (b==minRGB)
{
d = r-g;
}else{
d = b-r;
}
}