我正在学习 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
在循环中遇到,跳过它之后的所有其他语句[在循环内]并且循环移动到下一次迭代。
在这种情况下,一旦我们有一个双倍,我们就退出循环并打印出达到双倍所需的掷骰数。
希望对你有帮助
关于php - 有没有办法避免最后出现空的 else { }?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079706/