我需要做什么才能 "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) 
           }