我在练习过程中遇到的问题如下:
编写一个JavaScript程序以创建一个将2个整数作为输入的函数。只要结果(商)是一个整数(即,余数为零),该函数就将第一个整数除以第二个整数,并返回商作为结果。您的输出代码应采用console.log(“ Result is”,variableName)
格式。下面是我的代码:
var num = prompt("Enter number to divide");
var d = prompt("Enter divisor");
function divide(x, y) {
var result;
if (d === 1) {
result = num;
} else {
while (num % d === 0) { //while error
result = num / d;
}
}
return result;
}
var output = divide(num, d);
console.log("Result is: ", output);
如果我删除了while循环,程序可以正常工作,但是问题描述表明我必须使用它。
我在做什么错了?
答案 0 :(得分:0)
您的while
循环取决于num
,但是在循环后您无需为其分配新的值。这导致条件始终保持不变。
var num = prompt("Enter number to divide");
var d = prompt("Enter divisor");
function divide(x, y) {
var result = x;
if (y === 1) {
return result;
} else {
while (result % y === 0) {
result = result / y;
}
}
return result;
}
var output = divide(num, d);
console.log("Result is: ", output);
答案 1 :(得分:0)
有几个问题:
1):如果您的函数接收到参数x
和y
,请在其作用域内使用这些参数,请勿访问全局变量。
2)您将永远不会更改在while
条件下求值的变量,因此求值将永远相同!
3)您可以做的另一件事是在接收到的参数上添加一些验证。
现在,您的代码可以重新排列为以下代码:
function divide(x, y)
{
if (isNaN(x) || isNaN(y))
return "Invalid arguments!";
if (y === 1)
return x;
while (x % y === 0)
{
x = x / y;
}
return x;
}
var num = prompt("Enter number to divide");
var d = prompt("Enter divisor");
var output = divide(num, d);
console.log("Result is: ", output);