// Example bool is true
bool t = true;
// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1
これは false を 0 に、 true を 1 に変換します。1 : 0 は動作しますか?
// Example bool is true
bool t = true;
// Convert bool to int
int i = t ? 1 : 0;
Console.WriteLine(i); // 1
これは false を 0 に、 true を 1 に変換します。1 : 0 は動作しますか?
三項演算子を見てください。
int i = t ? 1 : 0;
以下に等しい:
if(t)
{
i = 1;
}
else
{
i = 0;
}
この構文は、javascript を含め、さまざまな言語で使用できます。
コロンを「otherwise」に置き換えると、英文のように考えてください。
bool isItRaining = false;
int layersOfClothing = isItRaining? 2 otherwise 1;
C#の条件演算子です。
i = does t == true? if yes, then assign 1, otherwise assign 0.
次のように書くこともできます。
if (t == true)
t = 1;
else
t = 0;
また
if (t)
t = 1;
else
t = 0;
t は true であるため、1 が出力されます。
(? *) これは条件演算子です。
条件演算子 (?:) は、ブール式の値に応じて 2 つの値のいずれかを返します。条件演算子の形式は次のとおりです。
調子 ?first_expression : second_expression;
ここでは (true?1:0 ) 条件が true であるため、これは確かに i の値を 1 に設定しています。
bool t= true;
int i;
if(t)
{
i=1;
}
else
{
i=0;
}
詳しくは?:演算子
t が true の場合 i=1 でなければ i=0
内部的には、コンパイラはステートメントを次のようにインライン化すると思います。
Console.WriteLine(Convert.ToInt32(t));
この Convert.x メソッドは、渡されたパラメーターが true かどうかを確認し、そうでない場合は 0 を返します。