如果否则,请替换为 for 循环

Replace if else with a for loop?

本文关键字:for 循环 替换 如果      更新时间:2023-10-16

我有:

    if (a[i] == 1) {
        howMany[1] += 1;
    }
    else if (a[i] == 2) {
        howMany[2] += 1;
    }
    else if (a[i] == 3) {
        howMany[3] += 1;
    }
    else if (a[i] == 4) {
        howMany[4] += 1;
    }
    else if (a[i] == 5) {
        howMany[5] += 1;
    }
    else if (a[i] == 6) {
        howMany[6] += 1;
    }
    else if (a[i] == 7) {
        howMany[7] += 1;
    }
    else if (a[i] == 8) {
        howMany[8] += 1;
    }
    else if (a[i] == 9) {
        howMany[9] += 1;
    }

我想用这样的东西替换它:

    if (a[i] == 1 || a[i] == 2 <-- etc) {
        howMany[i] += 1;
    }

但这行不通。有人有头绪吗?这很C++,但我在 Python 中遇到了同样的问题,所以我不认为这是一个语言问题,而只是一个普遍的问题。

如果你确定a的范围是从一到九,你可以简单地写

howMany[a[i]]++;

否则,您将需要一个if语句

if(a[i] >= 1 && a[i] <= 9)
    howMany[a[i]]++;

怎么样

howMany[a[i]] += 1;

因为您始终根据 a[i] 的值访问 howMany 元素

让我们看看你在做什么

if (a[i] == 1) {
    howMany[1] += 1;
}

因此,如果a[i]为 1,则要增加 howMany[1] 的值。 由于a[i] == 1和索引howMany == 1那么您所需要的只是howMany[a[i]] += 1;

您需要使用:

howMany[a[i]] += 1;

(或++而不是+= 1(在if语句中(顺便说一下,不是循环(,因为a[i]变量是保持 1、2 等的变量。

您的新if语句也可以简化为以下内容:

if ((a[i] >= 1) && (a[i] <= 9)) ...