数学问题说: 编写一个程序,您可以在其中插入1到100之间的一个正数。当插入一个超出范围的数字时,应该出现错误消息,并且应该插入另一个数字。
这是我尝试的代码:
function solve(input) {
let number = (input.shift());
while (number < 1 || number > 100) {
console.log('Invalid number.');
number = Number(input.shift());
}
console.log(`The number is: ${number}`)
}
solve(['35', '105', '0', '-200', '77'])
最终结果应该是:
35
The number is: 35
105
Invalid number!
0
Invalid number!
-200
Invalid number!
77
The number is: 77
答案 0 :(得分:1)
您需要获取所有值并检查undefined
。
function solve(input) {
let number = input.shift();
while (number !== undefined) {
if (number < 1 || number > 100) {
console.log('Invalid number.');
} else {
console.log(`The number is: ${number}`)
}
number = input.shift();
}
}
solve(['35', '105', '0', '-200', '77'])
答案 1 :(得分:0)
当前仅console.logs数字是:35,仅此而已。 ?
仅打印一次,因为第一个数字本身的number < 1 || number > 100
条件失败,
您可以简单地做的是,初始化一个counter
并使其值等于input.length-1
,检查input
中各个索引处的值,如果超出范围则显示无效,否则只需打印数字,每次在循环结束时将计数器减1
function solve(input) {
let i = input.length - 1
while (i >= 0) {
if (input[i] < 1 || input[i] > 100) {
console.log('Invalid number.', `The number is: ${input[i]}`);
} else {
console.log(`The number is: ${input[i]}`)
}
i--
}
}
solve(['35', '105', '0', '-200', '77'])