php - 有没有办法避免最后出现空的 else { }?

标签 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 {}
?>

最佳答案

$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/

相关文章:

php - 完整日历外部事件列表

c++ - 在 while 循环中使用字符串查找和替换时的 std::out_of_range

c++ - While 循环和 gen rand()

java - 有 2 个结果集循环的 Servlet

java - 如何编写一个不使用 do 循环来返回整数中存在多少个数字 2 的方法

c++ - 为什么当我输入一个字符时我的程序有一个无限循环?

php - 仅显示 MySQL future 的数据库记录

javascript - 如何在同一页面上使用具有相同 ID 的多个(动态)切换按钮?

php - 如何使用 php 将 mysql DB 从本地主机复制到服务器?

java - java中的数组程序