2014-12-04 11 views
-1

Я вижу другие решения по моему вопросу, но никто из них мне не помогает.Javascript - Найти, если число положительное или отрицательное

Я хочу создать функцию, чтобы найти число положительное/отрицательное. Функция должна принимать целочисленный аргумент и возвращать значение true, если целое число положительное и false, если оно отрицательное.

Кроме того, предложит пользователю снова и снова, если ничего, кроме числа введен

Вот код до сих пор

Когда я ввожу номер, он сохраняет готовность меня это является истинным или ложным, но вона Позвольте мне войти в другое. Как я могу управлять своей петлей, чтобы я мог запросить до ввода -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

+0

Вы можете проверить это решение: http://stackoverflow.com/questions/7037669/how-to-check-the-value-given-a-a-positive-or-negative-integer? answertab = active # tab-top –

ответ

0

Вы проверяете, если он не -1. Попробуйте это:

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

Это проверяет, если она меньше или больше, чем 0.

+0

Он только тестирует '-1' в условии цикла, потому что так пользователь говорит, что он сделал. – Barmar

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

Смежные вопросы