2017-08-12 107 views
-2

我是PHP的新手,我无法使这个无限的while循环工作。我正在尝试使无限循环生成1到10之间的随机数,并输出这些数字的立方根,并在生成5时终止循环。到目前为止,我有下面的代码,我不知道我错了。任何帮助或指导将非常感谢。PHP无限虽然循环终止

$counter = rand(1, 10); 
while ($counter==5) { 
    break; 
    if ($counter >5 or $counter<5) { 
     echo sqrt($counter) . "</br>"; 
    } 
    $counter++; 
} 

编辑:我刚才听了你们给我下面的建议,我注意到一些错误我做了我自己,如“或”变成“和”。不过,我仍然不明白为什么它不会产生一个数字为1-10的循环来表示他们的权力?

while(true) 
{ 
$counter = rand(1, 10);  
    if ($counter <=10) { 
     echo sqrt($counter) . "</br>"; 
    } 
if($counter ==5) break; 
} 
+0

您while循环永远只能甚至开始做第一次迭代,如果随机值正好是5,但是你不关心和不该做什么如果这个迭代真的发生了,就要做任何事情 - 无论发生什么,你都会首先摆脱循环。如果你没有那样做,那么你继续做那些毫无意义的东西,然后检查那个必须是5的随机值是否大于或小于5.逻辑不是很多你的东西? – CBroe

+0

我正在学习队友。我明白你在说什么。这是否意味着我在这个问题中使用if语句是无关紧要的? – madoreo

+0

如果是多余的,你只需要让你的while循环条件正确。循环结束,一旦条件不再被满足,所以当然必须是'$ counter!= 5'。如果最初产生的随机值不是5,那么你的while循环甚至不会启动10次,甚至不会启动这个问题。你想为此使用一个'do ... while'循环 - 它总是运行至少一次,并且只在循环体运行后检查条件。你也忽略了创造一个_new_随机值,你只做过一次。这部分属于do while while循环,第一件事。 – CBroe

回答

0

我想,你在php中创建一个无限循环?

就在这个代码

,而(真){ 回声兰特(1,10)。 “
”; }

1

你打破了循环WHILE(正在进行)你的计数器等于5,只有在你的条件满足时才回显一次。 你可能想要做可能看起来像

while(true) 
{ 
    $counter = rand(1 , 10); 
    #echo stuff 
    if($counter == 5) break; 
    } 
+0

我明白你的意思!我更改了代码以适应这个更多,但是我仍然无法获得产生的数字以他们的权力。 – madoreo