在javascript中使用for循环编写一个代码,提示用户输入任意数量的数字,打印这些数字中最大和最小的数字

时间:2015-10-18 10:51:01

标签: javascript

JS的新手,这里有问题,代码要求用户输入任意数量的数字-1来结束,找到并显示最大和最小的数字;它的工作除了它显示最小但最大但最大的显示器 细??

{{1}}

4 个答案:

答案 0 :(得分:0)

您的代码存在的问题是numInputs仅解析您输入的第一个数字。所以如果你把字符串" 1 2 3 4 5 -1",numInputs得到值1.

以下是修复问题的代码段:

var largestNum, smallestNum;
var numInput = parseInt(prompt("Please enter the next number (-1 to exit)"));
if (numInput != -1) {
    largestNum = numInput;
    smallestNum = numInput;
}

while (numInput != -1) {
    if (numInput > largestNum) {
        largestNum = numInput;
    } else if (numInput < smallestNum) {
        smallestNum = numInput;
    }
    numInput = parseInt(prompt("Please enter the next number (-1 to exit)"));
}

alert("Smallest number is " + smallestNum + ", largest number is " + largestNum);

正如您所看到的,我实时更新了最小和最大的数字,而不是在我得到所有输入之后。 此外,为简单起见,我将第一个数字设置为最小数字和最大数字(不使用固定值为0和9999,这可能是错误的)。 最后,我为每个号码单独提示,因此您无法将它们全部输入。为此,您需要split字符串并存储在数组中,并迭代数组元素。

答案 1 :(得分:0)

var a = [],
    value;

value = parseInt(prompt("Please enter numbers seperated by a space end with - 1 "));
while (value !== -1) {
    a.push(value);
    value = parseInt(prompt("Please enter numbers seperated by a space end with - 1 "));
}

a.sort();
console.log(a);

alert("The largest number entered was " + a[a.length-1]);
alert("The smallest number entered was " + a[0]);

修改 如果要对大于9的数字进行排序,请使用:

a.sort(function(a,b){ return a - b });

答案 2 :(得分:0)

如何在这里重构代码呢?我们移除了@XmlElement @XmlJavaTypeAdapter(Adapter.class) private Map<String, List<Parameter>> parameterMap = new HashMap<>(); ,因为它起作用,并将输入的数字parseInt用空格形成一个数组split然后只有sorting the arraypoping来自它的数字,它们分别只删除了最后一个和第一个数字。

这是example

代码:

shifting

答案 3 :(得分:0)

你的代码没有多大意义。

numInputs 将是一个字符串(数字用空格分隔),你需要解析它介绍一个数组,如:

numInputs = prompt("Please enter numbers...")).split(" ");

然后你应该遍历数组并检查最大和最小数字,例如:

var smallestNum = numInputs[0];
var largestNum = numInputs[0];

for(var i=0; i<numInputs.length; i++) {
    if (smallestNum > numInputs[i]) {
        smallestNum = numInputs[i];
    } else if (largestNum < numInputs[i]) {
        largestNum = numInputs[i];
    }
}