在do while语句中有两个条件

Have two conditions in a do while statement

本文关键字:两个 条件 do while 语句      更新时间:2023-09-26

我试图在do ... while语句的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));

问题不在于括号;我已经测试了所有可能的组合,但没有任何结果
那么,我如何在同一时间内对两种表达进行分组呢?

也许你真的想要一个"or"而不是"and"?(因此,将&&替换为||)。

经度不可能既小于2,又不是一个数字。因此,当为true时,您可能希望继续循环。

您还需要反转这两者,如isNaN(longitud) || longitud < 2中所示。如果经度不是一个数字,那么你需要先检查一下。

我相信问题的答案在while语句中。由于while语句将永远找不到longitud<2和isNAN。更改为此并尝试:

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

在您的代码中,您正在检查经度是否同时<2和是NAN。您希望它在经度小于2或为NAN时循环。

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