-5

この変数の割り当てで何が起こっているのかを理解しようとしています。

num = forward.Data.Key >= key ? 1 : 0;

特にこの部分 >= key ? 1 : 0

前進を助けることはLinkedListCell<KeyValuePair<int, double>> forward = _data.Next;

keyメソッドに渡されるintパラメータです。

また、C#で書かれたプログラムです

4

2 に答える 2

5

それが三項演算子です。ブール式を取り、その式の結果に応じて2つの値のいずれかを返します。あなたはそれを多くの言語で手に入れます。

これは次と同等です。

if( forward.Data.Key >= key ) {
    num = 1;
}
else {
    num = 0;
}
于 2012-09-25T04:52:33.093 に答える
3

それはと呼ばれternary conditional operatorます。(または短いIf-Elseステートメント

value = condition ? truePart : falsePart;

三項演算子は条件をテストします。2つの値を比較します。比較の結果に応じて、3番目の値が生成されます。

MSDNから、

int input = Convert.ToInt32(Console.ReadLine());
string classify;

// if-else construction.
if (input < 0)
    classify = "negative";
else
    classify = "positive";

// ?: conditional operator.
classify = (input < 0) ? "negative" : "positive";
于 2012-09-25T04:51:50.763 に答える