2014-12-04 36 views
-1

我看到其他解決方案對我的問題,但沒有任何幫助我。Javascript - 查找數字是正數還是負數

我想創建一個函數來查找數字是正數還是負數。函數應該接受一個整數參數,如果整數是正數則返回真,如果是負則返回假。

而且,一次又一次地提示用戶,如果不是數字的任何輸入

下面的代碼到目前爲止

當我輸入一個數字,它一直提醒我,這是真的還是假的,但韓元別讓我進入另一個。 如何控制我的循環,以便我可以詢問,直至輸入-1?它不給我機會進入-1

function isPositive(num) { 

    var result; 

    if (num >= 0) { 
     result = true; 
    } else if (num < 0) { 
     result = false; 
    } 
    return result; 
} 

var num; 
num = parseInt(prompt("Enter a number")); 
while (num != -1) { 
    alert(isPositive(num)); 

    if (isNaN(num)) { 
     alert("No number entered. Try again"); 
     num = parseInt(prompt("Enter a number")); 
     isPositive(num); 
     while (num != -1) { 
      alert(isPositive(num)); 
     } 
    } 
} 
+0

它告訴我,即使我輸入-1 – Pizzaman 2014-12-04 13:16:34

+0

您可以檢查該解決方案的每個數字是真實的:http://stackoverflow.com/questions/7037669/how-to-check-the-value-given-is-a-positive-or-negative-integer?answertab = active#tab-top – 2016-11-19 05:40:35

回答

0

您正在測試,如果它 -1。試試這個:

if(num < 0){ 
...IS NEGATIVE... 
}else{ 
...IS POSITIVE... 
} 

此檢查它是否小於或大於0

+0

他只在循環條件下測試'-1',因爲這就是用戶說他已經完成了。 – Barmar 2014-12-04 13:19:48

1

人數0既不是積極的,也不是負面的! :P

function isPositive(num) 
{ 
    if(num < 0) 
     return false; 
    else 
     return true; 
} 

或者一個簡單的方法,

function isPositive(num) 
{ 
    return (num > 0); 
} 
3

有你的代碼錯誤的幾件事情,所以這裏有意見改寫:

function isPositive(num) { 
 
    // if something is true return true; else return false is redundant. 
 
    return num >= 0; 
 
} 
 

 
// when you want to keep doing something until a condition is met, 
 
// particularly with user input, consider a while(true) loop: 
 
var num; 
 
while (true) { 
 
    num = prompt("Enter a number"); 
 
    // check for null here 
 
    if (num === null) { 
 
    alert("No number entered. Try again."); 
 
    continue; // return to the start of the loop 
 
    } 
 

 
    num = parseInt(num, 10); // second argument is NOT optional 
 
    if (isNaN(num)) { 
 
    alert("Invalid number entered. Try again."); 
 
    continue; 
 
    } 
 

 
    // once we have a valid result... 
 
    break; 
 
} 
 
// the loop will continue forever until the `break` is reached. Once here... 
 
alert(isPositive(num));

+0

我想他想要循環內的警報,所以它會告訴他是否輸入每個數字都是正數。當您輸入-1時,循環結束。 – Barmar 2014-12-04 13:18:59

相關問題