【问题标题】:How to use continue in a loop to change a value如何在循环中使用 continue 来更改值
【发布时间】:2017-02-06 03:12:12
【问题描述】:

我正在尝试创建一个循环,为我提供从 1 到 30 的值。但是,每个可被 10 整除的数字我都想将值硬编码为相应的单词。例如值 10 = "Ten"、20 = "Twenty" 等等。

我尝试使用“继续”来执行此操作,但是我显示的结果没有超过“十”。

    for (i = 0; i <= 30; i++) {
        if (i == 10) {
            i = "Ten";
            continue;
        } if (i == 20) {
            i = "Twenty";
            continue;
        }
        console.log(i);
    }

Results

我的做法是否正确?您能否提供一些提示,以便我解决这个问题。谢谢,

我最初尝试过这个。但是没用。

   for (i = 0; i <= 30; i++) {
      if (i == 10) {
        i = "Ten";       
      } if (i == 20) {
        i = "Twenty"; 
      }
   console.log(i);
   }

【问题讨论】:

  • 在循环内更改循环变量是一种代码味道。这几乎不是一个好主意。

标签: javascript loops if-statement continue


【解决方案1】:

只需摆脱 continue 语句。它们使循环立即跳到末尾并开始另一次迭代。因此,您的控制台输出语句将被跳过。此外,您不想触碰循环变量,拥有else 也无妨。像这样的:

var result;
for (i = 0; i <= 30; i++) {
    if (i == 10) {
        result = "Ten";
    } else if (i == 20) {
        result = "Twenty";
    } else {
        result = i;
    }
    console.log(result);
}

或者您可以直接在if/else 链的每个分支中记录所需的输出:

for (i = 0; i <= 30; i++) {
    if (i == 10) {
        console.log("Ten");
    } else if (i == 20) {
        console.log("Twenty");
    } else {
        console.log(i);
    }
}

【讨论】:

  • 它不起作用的原因是因为我将整数更改为字符串并期望我的变量为 + 1?刚看到你的回复。谢谢你的解释!!!现在说得通了。
  • @OatmealForever 完全正确
  • @OatmealForever - 是的,你需要保持循环变量不变,除非你想干扰循环的进程。 (有时确实需要,但在这种情况下显然不需要。)它最终崩溃的地方不在+1,它只是给你字符串"Ten1"。但是一旦i 是一个字符串,它将保持为一个字符串,并且所有测试(&lt;= 30、== 10 和== 20)都将评估为false。
【解决方案2】:

我不认为你可以改变 i 并期望它像往常一样工作。因此,一旦您将值更改为“TEN”,循环就会终止..!!!!

【讨论】:

    【解决方案3】:

    当计数器 i 变为 10 时,您将其替换为字符串,因此当控制流到达 i++ 部分时,您的循环将失败。您应该做的是将要打印的值分配给另一个仅在循环体内使用的变量。

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 2012-07-01
      • 1970-01-01
      • 2023-03-18
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多