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

I need help compressing this IF statment down as much as possible in C++

本文关键字:压缩 尽可能 IF 语句 C++ 帮助      更新时间:2023-10-16

我有几个 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 ++;
}

您正在计算序列中的1值,并且有一个标准的库算法。它需要两个迭代器,在这种情况下我给它指针。

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

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

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

像这样:

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

或者,如果您更喜欢节省几个字符的不那么简洁的方法:

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

似乎也符合您的需求。

这有什么用吗?

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