我看到了我的问题的其他解决方案,但没有一个可以帮助我。
我想创建一个函数来查找数字是正数还是负数。该函数应采用整数参数,如果整数为正则返回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 :(得分: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));
答案 1 :(得分:2)
数字0
既不是正面的,也不是负面的! :P
function isPositive(num)
{
if(num < 0)
return false;
else
return true;
}
或者简单的方法,
function isPositive(num)
{
return (num > 0);
}
答案 2 :(得分:0)
您正在测试不是 -1。试试这个:
if(num < 0){
...IS NEGATIVE...
}else{
...IS POSITIVE...
}
检查它是否小于或大于0.
答案 3 :(得分:0)
Math.sign(number)
返回1
,-1
或0
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign