繁体   English   中英

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

[英]if-else statement nested in while-loops

我是Java的初学者。 我不太确定该在哪里适当询问,并且我想,由于我已经跟踪Stack Overflow已有一段时间了,所以这可能是一个合适的时间,该时间终于可以在这里注册帐户并开始我的资料了。 我正在阅读的书实际上并没有任何帮助论坛。

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

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++;
}

该练习仅假设使用while的概念, 如果但很显然出于对编程的好奇心,我想添加else语句,但我无法使代码正常工作。 我让代码正常工作的唯一实例是没有else语句。

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

提前谢谢你的帮助!

您需要删除“中断”; 从else循环。 当找不到“ Tigers”时,该中断将在第一次迭代(当我为0时)时终止while循环。

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

无需休息,但是您仍然可以在if留下一个以结束循环:

工作实例

 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++;
}

您可以决定是否在找到某物时找到它。 但是,当您查看完所有内容后,只能决定未找到任何内容,这些内容应该在循环之外。

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!");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM