【问题标题】:Replace if else with a for loop?用for循环替换if else?
【发布时间】:2015-12-12 00:08:26
【问题描述】:

我有:

    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 中遇到过同样的问题, 所以我不认为这是一个语言问题,而只是 一个普遍的问题。

【问题讨论】:

  • 您确定要使用 for 循环而不是提供的单行答案来完成此操作吗?
  • 其实我决定使用一个班轮。多谢你们!出于好奇,我真的很想看到一个 for 声明。这是一个相对简单的问题,我无法解决。

标签: c++ loops if-statement for-loop replace


【解决方案1】:

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

howMany[a[i]]++;

否则您将需要一个if 声明

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

【讨论】:

    【解决方案2】:

    怎么样

    howMany[a[i]] += 1;
    

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

    【讨论】:

      【解决方案3】:

      让我们看看你在做什么

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

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

      【讨论】:

        【解决方案4】:

        你需要使用:

        howMany[a[i]] += 1;
        

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-16
          • 2014-03-08
          • 2017-08-02
          • 2019-12-04
          • 2014-03-30
          • 1970-01-01
          相关资源
          最近更新 更多