2015-11-13 174 views
-1

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

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

+0

将表达式放入变量中怎么样? –

+2

是(isNaN(纵向)||纵向<2)?意味着如果纵向无效或小于2,则继续输入 – Surely

+2

定义“没有任何反应”。首先,也许测试,看看它是一个数字*先*,然后*检查数字比较。 –

回答

0

也许你真的想要一个“或”而不是“和”? (所以用||代替&&)。

经度不可能小于2,也不可能是数字。所以,当或者为真时,您可能想要继续循环。

您还想要颠倒这两个 - 如在isNaN(longitud) || longitud < 2。如果经度不是一个数字,那么你首先需要检查。

0

我相信你的问题的答案是在你的while语句中。什么都不会发生,因为while语句不会同时发现纵向< 2和isNAN。 改成这样,并尝试:

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

在你的代码,你检查是否经度既< 2和isNAN。您希望它在经度小于2或isNAN时循环。

修改:增加了Katanas答案,解释了它应该首先检查isNAN。