繁体   English   中英

为什么while循环不会在它应该结束的时候结束?

[英]Why does this do while loop not end when it's supposed to?

我正在尝试使用 PHP 7.4

<?php
    function test(){
        do{
            $val=(int)readline("Insert a number in the range of 1-5 :");
            print_r(($val>5 || $val!==0)."\n");
        }while ($val>5 || $val!==0);
    }
    test();

但它只是没有按预期工作。 它只是在我插入 0 时离开循环,但在我插入一个小于或等于 5 的数字时不会。

这种情况对于您要执行的操作是不正确的。

while ($val>5 || $val!==0)

您希望循环结束的数字都不等于零,因此条件的$val!==0部分将始终为真,除非$val为零。

如果像$val>5 || $val!==0这样的 or 表达式的一部分 $val>5 || $val!==0为真,则整个表达式为真。

你需要这个:

while ($val > 5 || $val < 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM