我正在尝试创建一个计算,以获取起始编号,结束编号和步骤编号,以按步骤值显示开始和结束计数之间的所有偶数。 我的循环逻辑似乎有问题,因为它不会停止和崩溃。
{{1}}
答案 0 :(得分:1)
我认为你想做的是
sum = start
循环之前。并且
sum += step
循环内的
答案 1 :(得分:0)
问题是代码的第3行。该行即将将var sum推到结果的末尾,但是你正在推动起始变量,这就是循环没有停止的原因
答案 2 :(得分:0)
在循环期间,步骤和开始都没有改变,因此在每次迭代后总和不会改变。
您可以按以下方式更改代码:
=B60+1
您还可以使用FOR循环以更简单的语法实现相同的行为。
答案 3 :(得分:0)
几个问题:
+=
或sum = sum + step
<!DOCTYPE html>
<html>
<body>
<h2>JFinding all even numbers</h2>
<p>Please input a starting number, ending number and step number:</p>
Starting Number: <input id="start">
Ending Number: <input id="end">
Step by Number: <input id="step">
<button type="button" onclick="myFunction()">Submit</button>
<p id="demo"></p>
<script>
function myFunction() {
var start, end, step, text;
var result = [];
// Get the value of the start number with start var
start = parseInt(document.getElementById("start").value);
// Get the value of the end number with end var
end = parseInt(document.getElementById("end").value);
// Get the value of the step number with step var
step = parseInt(document.getElementById("step").value);
console.log('start', start);
console.log('end', end);
console.log('step', step);
// If start, end, or step is Not a Number or step is not even or start is greater than end or step is greater than end or start and step are equal to end
if (isNaN(start) || isNaN(end) || isNaN(step) || step % 2 !== 0 || start > end || step > end || step === end || start === end) {
//display text for invalid input
text = "Input not valid";
//display text to html page
document.getElementById("demo").innerHTML = text;
//else create a loop to find even numbers
} else {
for(var i = start; i <= end; i += step){
if(i % 2 === 0){
result.push(i);
}
};
//sent the result to the html page
document.getElementById("demo").innerHTML = result;
}
}
</script>
</body>
</html>
另请注意,代码要求步骤为偶数:step % 2 !== 0
,因此我们获得任何结果的唯一方法是启动数字是否均匀。