用三元运算符诠释为布尔

时间:2018-11-04 12:44:06

标签: arrays ternary-operator

有一种方法可以计算升序数组中的相等数:

public void CheckArr (int [] array)
{
    int count = 0;
    int prev = array [0];
    bool inPair = false;

    for (int i = 1; i <array.Length; i ++)
    {
        if (array [i] == prev)
        {
            count + = inPair? 1:2;
            inPair = true;
        }
        else
        {
            prev = array [i];
            inPair = false;
        }
    }
    Console.WriteLine (count);
}

我无法理解该表达式:count + = inPair? 1:2; int如何等于bool?如果将其重写为if / else,它将是什么样?

1 个答案:

答案 0 :(得分:1)

编写类似

的表达式时
count += inPair? 1:2;

就像这样写:

if (inPair) {
  count += 1;
} else {
  count += 2;
}

在示例中,它使int不等于bool,如果布尔为true,则使count等于1;如果布尔值为false,则使count等于2。