首页 > 解决方案 > 为什么我的 break 语句只适用于第一个“if”?

问题描述

我正在尝试制作一个基于提示的待办事项列表

目前我正在尝试添加将提示用户添加到数组的部分,这有效,但是当我尝试退出时,它只是一直在询问。退出适用于第一个问题 - “你想做什么?” 但是一旦我说“新”然后输入一个项目它不会让我退出。

// TO DO 
let toDo = [];

let options = prompt("What would you like to do?")
while (options !== "quit") {
  if (options === "quit") {
    break;
  }
  if (options === "new") {
    let options = prompt("add to do")
    toDo.push(options);
  }
}

console.log( toDo )

标签: javascript

解决方案


这里break完全没有意义。if (options === "quit") {永远不会通过,因为while (options !== "quit") {到那时已经失败了。

您的问题是由于您有两个名为options.

第一个(第 4 行)用于测试循环是否应该退出。

第二个(内部if (options === "new") {)用于将某些东西推到toDo数组上并遮盖第一个。

不要重新声明 options。从第二个中删除let,只需为现有变量分配一个新值。


推荐阅读