在do while语句中有两个条件

时间:2015-11-13 17:18:00

标签: javascript

我正在尝试在while声明的do ... while部分中使用两个条件。

以下代码有效:

do {
    var longitud = parseInt(prompt("increase longitude of array"));
} while (isNaN(longitud));

以下也有效:

do {
    var longitud = parseInt(prompt("increase longitude of array"));
} while (longitud < 2);

但是当我想要将它们合并时,它不起作用:

do {
    var longitud = parseInt(prompt("increase longitude of array"));
} while (longitud < 2 && isNaN(longitud));

问题不在于括号;我测试了所有可能的组合,没有任何反应 那么,如何在同一时间对两个表达式进行分组?

2 个答案:

答案 0 :(得分:0)

也许你真的想要一个“或”而不是“和”? (因此请将&&替换为||)。

经度不可能小于2,而不是数字。因此,当 为真时,您可能希望继续循环。

你也想要扭转这两个 - 如isNaN(longitud) || longitud < 2。如果经度不是数字,那么你首先要检查它。

答案 1 :(得分:0)

我相信你问题的答案就在你的声明中。没有任何事情发生,因为while语句永远不会发现纵向&lt; 2和isNAN同时。 更改为此并尝试:

do{
    var longitud = parseInt(prompt("ingrese longitud del array"));
}while(isNaN(longitud) || longitud < 2);

在您的代码中,您正在检查经度是否为&lt; 2 AND isNAN。您希望它在经度小于2或isNAN时循环。

编辑:添加了Katanas的答案,解释说它应首先检查isNAN。