if-else语句嵌套在while循环中

时间:2016-05-09 00:17:00

标签: javascript if-statement while-loop

对于Javascript,我是初学者。我不确定在哪里提出适当的问题,因为我现在一直在跟踪Stack Overflow一段时间,这可能是最终创建帐户并在此处开始我的个人资料的最佳时机。我正在阅读的这本书并没有任何形式的帮助论坛。

无论如何,我正在阅读一本与JS练习相关的书,我想尝试结合包含嵌套 if..else语句的 while-loops 的原则。我的代码如下:

var teams = ["Chiefs", "Bees", "Tigers", "Bears"];
var i = 0;
while (i < teams.length) {
  if (teams[i] === "Lions") {
    alert(teams[i] + " is at Index " + i + " in the array");
    break;
  } else {
    alert("Query not found!");
    break;
  }
  i++;
}

练习只是假设使用的概念而 if 但显然我对编程的好奇心我想添加 else 声明,但我无法让代码工作。我让代码正常工作的唯一实例是没有 else 语句。

我的主要目标/好奇心是我希望它提醒“查询未找到!”当if语句在数组中找不到字符串时,在这种情况下我写了“Lions”。

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

你需要删除'break;'来自else循环。当它没有找到“Tigers”时,那个中断将在第一次迭代时(当我为0时)终止你的while循环。

break适用于循环结构,而不是if / elses。我猜你认为它会破坏/结束else块,但它实际上是打破了while循环。

答案 1 :(得分:0)

不需要休息,但你仍然可以在if中留下一个休息时间来结束循环:

Working Example

 var teams = ["Chiefs", "Bees", "Tigers", "Bears"];
 var i = 0;
 while (i < teams.length) {
  if (teams[i] === "Tigers") {
    alert(teams[i] + " is at Index " + i + " in the array");
    // can still put a break here to stop looping if you want.
  } else {
    if (i === teams.length - 1) {
      alert("Query not found!");
    }
  }
  i++;
}

答案 2 :(得分:0)

您可以在找到时确定是否找到了某些内容。但是,当你看到所有东西时,你只能决定找不到的东西,这应该在循环之外。

var teams = ["Chiefs", "Bees", "Tigers", "Bears"];
var i = 0, position = null;
while (i < teams.length) {
  if (teams[i] === "Lions") {
    position = i;
    break;
  }
  i++;
}
if (position !== null) {
  alert(teams[position] + " is at Index " + position + " in the array");
} else {
  alert("Query not found!");
}