2015-11-13 24 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。