其他结果不会显示在循环中 - javascript

时间:2016-02-04 21:45:36

标签: javascript while-loop

我有一个while循环,其中有if,else if和else条件。当我运行循环时,最后的else条件永远不会显示,我试图找出它的原因。这是代码:

var loopEnd = 1;
while (loopEnd != 2) {
  var conversion = prompt("Do you want to convert miles to km, or km to miles?");
  if (conversion == "miles to km") {

    var miles = 0;
    var miles = prompt("How many miles do you want to convert?");
    var kilometers = 1.61 * miles;
    while (miles != 0) {
        alert("The number of kilometers for " + miles + " miles is " + kilometers + " kilometers.");
        var miles = prompt("How many miles do you want to convert?");
        var kilometers = 1.61 * miles;
                   }
    var promptEnd = prompt("Do you want to convert anything else?");
    if (promptEnd == "no") {
        var loopEnd = 2;
        } else {
        alert("Okay, let's convert something else!");
        }

    } else if (conversion == "km to miles") {

    var kilometers = 0;
    var kilometers = prompt("How many kilometers do you want to convert?");
    var miles = 0.62 * kilometers;
    while (kilometers != 0) {
      alert("The number of miles for " + kilometers + " kilometers " + miles + " miles.");
      var kilometers = prompt("How many kilometers do you want to convert?");
      var miles = 1.61 * kilometers;
    }
    var promptEnd = prompt("Do you want to convert anything else?");
    if (promptEnd == "no") {
      var loopEnd = 2;

 // } else {

    alert("Sorry, I didn't quite catch that.");
    }
  }
}

1 个答案:

答案 0 :(得分:1)

如果您正在引用其中包含警报的其他内容,则需要重新格式化代码。在这里试试这个

var loopEnd = 1;
while (loopEnd != 2) {
    var conversion = prompt("Do you want to convert miles to km, or km to miles?");
    if (conversion == "miles to km") {

    var miles = 0;
    var miles = prompt("How many miles do you want to convert?");
    var kilometers = 1.61 * miles;
    while (miles != 0) {
        alert("The number of kilometers for " + miles + " miles is " + kilometers + " kilometers.");
        var miles = prompt("How many miles do you want to convert?");
        var kilometers = 1.61 * miles;
    }
    var promptEnd = prompt("Do you want to convert anything else?");
    if (promptEnd == "no") {
        var loopEnd = 2;
    } else {
        alert("Okay, let's convert something else!");
    }


} else if (conversion == "km to miles") {

    var kilometers = 0;
    var kilometers = prompt("How many kilometers do you want to convert?");
    var miles = 0.62 * kilometers;
    while (kilometers != 0) {
        alert("The number of miles for " + kilometers + " kilometers " + miles + " miles.");
        var kilometers = prompt("How many kilometers do you want to convert?");
        var miles = 1.61 * kilometers;
    }
    var promptEnd = prompt("Do you want to convert anything else?");
    if (promptEnd == "no") {
        var loopEnd = 2;
    }
}
else {
    alert("Sorry, I didn't quite catch that.");
}
}

另外,Rhumborl是正确的,你需要清理代码并给它适当的间距。