新近学习过的javascript,在这里我在循环时遇到问题

时间:2018-09-20 11:29:02

标签: javascript

为什么在第一种情况下它停在11点?它不应该停在10点吗?

var noAngkot = 0;
var Angkotoperate = 6;
var QuantityAngkot = 10
while (noAngkot <= QuantityAngkot) {
    noAngkot++
    if (noAngkot <= Angkotoperate) {
        console.log("Angkot " + noAngkot + " Beroperasi Dengan Baik");
    }

    else {
        console.log("Angkot " + noAngkot + " Tidak Beroperasi Dengan Baik")
    }
}

在以下情况下,当我使用<时,应该不是9吗?为什么是10?

var noAngkot = 0;
var Angkotoperate = 6;
var QuantityAngkot = 10
while (noAngkot < QuantityAngkot) {
    noAngkot++
    if (noAngkot <= Angkotoperate) {
        console.log("Angkot " + noAngkot + " Beroperasi Dengan Baik");
    }

    else {
        console.log("Angkot " + noAngkot + " Tidak Beroperasi Dengan Baik")
    }
}

请帮助

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您从0循环到10(包括0 <= noAngkot <= 10):

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 => that's 11 iterations

在第二个示例中,您从0循环到10(不包括在内)(0 <= noAngkot < 10):

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 => that's 10 iterations

这是正常现象。

如果您将noAngkot定义为等于1:

,则可能发生您描述的预期行为。

var noAngkot = 1;
var QuantityAngkot = 10
while (noAngkot <= QuantityAngkot) {
    // this will output up to 10
    console.log(noAngkot)
    noAngkot++
}

var noAngkot = 1;
var QuantityAngkot = 10
while (noAngkot < QuantityAngkot) {
    // this will output up to 9
    console.log(noAngkot)
    noAngkot++
}