什么应该最大化初始化?我一直试图解决这个问题,但没有运气。
NUMBER_OF_INPUTS = 5;
var i;
var max;
var userInput; // Input from user
max = ???? ;
for(i=0; i<NUMBER_OF_INPUTS; i++)
{ userInput = parseInt(prompt('Enter input: '));
if (userInput > max)
max = userInput;
}
alert('Max: ' + max);
答案 0 :(得分:6)
-Infinity
怎么样?或者,您可以使用null
,并使用特殊情况:
if (max == null || userInput > max) {
max = userInput;
}
如果你想变得非常花哨,不要自己写循环。让Math.max
完成工作:
var i;
var userInputs = [];
var max;
for (i = 0; i<NUMBER_OF_INPUTS; i++)
{
userInputs.push(parseInt(prompt('Enter input: '), 10));
// ↑↑↑↑ always pass the radix
// to parseInt()
}
max = Math.max.apply(null, userInputs);
答案 1 :(得分:1)
Number.NEGATIVE_INFINITY
可能是一个不错的选择,但实际上,你并没有将初始化为任何东西,还有其他几个选项。您可以“取消循环”第一次迭代,以便强制分配到max
:
NUMBER_OF_INPUTS = 5;
var i;
var max;
var userInput;
userInput = parseInt (prompt ('Enter input: '));
max = userInput;
for (i = 1; i < NUMBER_OF_INPUTS; i++) {
userInput = parseInt (prompt ('Enter input: '));
if (userInput > max)
max = userInput;
}
alert('Max: ' + max);
虽然这会导致一些代码重复,但只是看起来不洁净。
或者,您可以使用i
控制变量在循环的第一次迭代中强制它:
NUMBER_OF_INPUTS = 5;
var i;
var max;
var userInput;
for (i = 0; i < NUMBER_OF_INPUTS; i++) {
userInput = parseInt (prompt ('Enter input: '));
if ((i == 0) || (userInput > max))
max = userInput;
}
alert('Max: ' + max);
答案 2 :(得分:0)
使用Javascript Number.NEGATIVE_INFINITY
常量。这样,任何用户输入都将大于变量初始化的值,因为NEGATIVE_INIFINTY
小于JS可以表示的所有其他数字。