有没有办法在最后避免空的其他{}?

时间:2013-04-18 09:50:15

标签: php while-loop do-while

我正在学习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 {}
?>

3 个答案:

答案 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)

只需删除其他内容即可。就这么简单。