我正在学习 PHP 并尝试编写一个小骰子循环。我想知道如何用更合适的语法重写它:
<?php
$rollcount = 1;
do {
$v = rand(1, 6);
$w = rand(1, 6);
$rollcount++;
echo "<p>$v, $w</p>";
}
while ($v != $w);
if ($v == $w) {
echo "<p>It took $rollcount turns until double!</p>";
} else {}
?>
$rollcount = 0;
while(true){
++$rollcount;
$v = rand(1,6);
$w = rand(1,6);
echo "<p>".$v.", ".$w."</p>";
if($v === $w){
break;
}
}
echo "<p>It took ".$rollcount." turns until double!</p>";
由于目标是双倍,所以骰子可以继续滚动,直到达到条件。
while
继续处理,直到条件为假为止,在这种情况下,条件永远不会为假,因为我们向 boolean true
循环提供 while(true)
值。 PHP(和许多其他语言)提供了一些执行控制结构break, continue
是最常见的。
break
允许您跳出循环,并且可以在循环内达到特定条件时执行它。
另一方面,continue
不会让你跳出循环,而是跳到循环的下一次迭代,所以这意味着一旦在循环中遇到continue
,所有其他语句之后[循环内]被跳过并且循环移至下一次迭代。
在这种情况下,一旦我们有了双倍数,我们就退出循环并打印出达到双倍数所需的卷数。
只需删除
else{}
if ($v == $w) {
echo "<p>It took $rollcount turns until double!</p>";
}
只需删除其他即可。就这么简单。