我正在开发一个程序,我来到了一个我想循环一个值然后用它来测试if语句的用户输入的点,但问题是我无法使用循环的值。
至少这就是我的想法,然后我尝试将if语句作为循环语句应该执行的代码之一,令人惊讶的是它起作用,但是当我尝试更多那个if语句时(即。else if) ,它只执行了我的一个if语句。
请问有其他方法可以使用吗?
下面是代码(输入0到10之间的数字):
<input type="number" id="i" />
<input type="button" value="submit" onclick="result()" />
<p id="k"></p>
<script>
function result (){
//first method
var x= i.value;
var y = 0
while (y<10){
y++
}
if (x==y) {
document.getElementById("k").innerHTML = "correct"
}
/ * it didn't work probably because the if statement assumes y to be 0. /*
//second method
while (y<10){
y++
if (x==y) {
document.getElementById("k").innerHTML = "correct"
}
else if (x >y ) {
document.getElementById("k").innerHTML ="wrong"
}
}
//it only tested one of the if statement
</script>
或者有其他方式而不是循环吗?
答案 0 :(得分:1)
您的代码存在一些问题:
if
语句不在循环内。break;
else if
块应出现在循环之后。为什么?例如,用户输入2
。在循环的第一次迭代中2==1
将失败,2 > 1
将为真,但这不是错误的答案。当x > y
本身为&gt; = 10时,y
只是错误的答案。您可以检查值本身是否大于0且小于10,而不是循环,您可以根据需要组合多个条件。
function result (){
//first method
var x= Number(i.value); // Number isn't necessary.
if ( (x > 0) && (x < 10) ) { // The && means "and", so if x is greater than 0 and less than 10.
document.getElementById("k").innerHTML = "correct";
} else {
document.getElementById("k").innerHTML = "wrong";
}
}