我需要帮助在C ++中尽可能地压缩这个IF语句

时间:2016-02-25 02:24:06

标签: c++ arrays if-statement int

我有几个我希望尽可能压缩的IF语句,这样每次在数组中出现数字1时,它会在Ones INT中加1。

if (Dice[1] == 1)
{
    Ones ++;
}

if (Dice[2] == 1)
{
    Ones ++;
}

if (Dice[3] == 1)
{
    Ones ++;
}

if (Dice[4] == 1)
{
    Ones ++;
}

if (Dice[5] == 1)
{
    Ones ++;
}

3 个答案:

答案 0 :(得分:4)

您计算了序列中的1值,并为此standard library algorithm计算了JPA。它需要两个迭代器,我在这种情况下给它指示。

Ones += std::count(&Dice[1], &Dice[6], 1);

这是做同样的事情,有些人可能更喜欢这种形式。

Ones += std::count(Dice + 1, Dice + 6, 1);

答案 1 :(得分:3)

像这样:

for (int i = 1; i < 6; ++i) if (Dice[i] == 1) Ones++;

或者,如果你喜欢一种不那么简单的方法,可以节省一些字符:

for (int i = 1; i < 6; ++i) Ones += (Dice[i] == 1);

似乎也符合您的需求。

答案 2 :(得分:2)

这有用吗?

for (int i = 1; i < 6; i++)
{
    if(Dice[i]==1)
        Ones++;
}