我需要做什么才能 "while loop" 停下来?
What do i need to do to "while loop" stop?
我想检查用户是否输入了 1-10 之间的数字,如果是,程序应该继续,如果不是,程序应该提示他重新输入。这是我的代码 (php)
$good = false;
while ($good == false){
$guess = readline(">>");
$guess = intval($guess);
if($guess == 1 or $guess == 2 or $guess == 3 or $guess == 4 or $guess == 5 or $guess == 6 or $guess == 7 or $guess == 8 or $guess == 9 or $guess == 10){
$guess = true;
}else{
echo "Invalid number. Please try again.\n";
$guess == false;
}
}
即使用户输入 1-10 之间的数字,它也会继续循环。我试过调试但没有成功。有什么建议吗?
您正在尝试更新 $guess 而不是 $good。
根据你的循环, $guess 永远不会更新为真,它永远是假的。
所以,你的循环无论如何都会继续。
您应该在满足条件后将 $good 更新为 false
,这将停止循环。
还有一件事是您应该使用 php in_array() 函数而不是将 $guess 变量与 1 到 10 进行比较。
你应该这样检查:
if (in_array($guess, [1,2,3,4,5,6,7,8,9,10])){
// your code here
}
甚至像这样:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// your code here
}
查看下面的代码:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// $guess = true;
$good = true; // you should update $good to true
}else{
echo "Invalid number. Please try again.\n";
// $guess == false; (you don't need this)
}
我想检查用户是否输入了 1-10 之间的数字,如果是,程序应该继续,如果不是,程序应该提示他重新输入。这是我的代码 (php)
$good = false;
while ($good == false){
$guess = readline(">>");
$guess = intval($guess);
if($guess == 1 or $guess == 2 or $guess == 3 or $guess == 4 or $guess == 5 or $guess == 6 or $guess == 7 or $guess == 8 or $guess == 9 or $guess == 10){
$guess = true;
}else{
echo "Invalid number. Please try again.\n";
$guess == false;
}
}
即使用户输入 1-10 之间的数字,它也会继续循环。我试过调试但没有成功。有什么建议吗?
您正在尝试更新 $guess 而不是 $good。 根据你的循环, $guess 永远不会更新为真,它永远是假的。 所以,你的循环无论如何都会继续。
您应该在满足条件后将 $good 更新为 false
,这将停止循环。
还有一件事是您应该使用 php in_array() 函数而不是将 $guess 变量与 1 到 10 进行比较。
你应该这样检查:
if (in_array($guess, [1,2,3,4,5,6,7,8,9,10])){
// your code here
}
甚至像这样:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// your code here
}
查看下面的代码:
$accepted_numbers = array(1,2,3,4,5,6,7,8,9,10);
if (in_array($guess, $accepted_numbers)){
// $guess = true;
$good = true; // you should update $good to true
}else{
echo "Invalid number. Please try again.\n";
// $guess == false; (you don't need this)
}