我正在学习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 {}
?>
答案 0 :(得分:2)
$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
,跳过循环内的每个其他语句,循环移动到下一次迭代。
在这种情况下,只要我们有一个double,我们退出循环并打印出达到双倍所需的卷数。
希望这有帮助
答案 1 :(得分:1)
只需删除else{}
if ($v == $w) {
echo "<p>It took $rollcount turns until double!</p>";
}
答案 2 :(得分:0)
只需删除其他内容即可。就这么简单。