【问题标题】:Is there a way to avoid an empty else { } at the end?有没有办法避免最后出现空的 else { }?
【发布时间】:2013-04-11 09:01:48
【问题描述】:

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

【问题讨论】:

  • else 为空就不需要了
  • 您可以从这里简单地删除它。这不会影响。
  • else 条件对于if 不是强制性的..

标签: php while-loop do-while


【解决方案1】:
$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,每隔一个[在循环内] 之后的语句被跳过,循环移动到下一次迭代。

在这种情况下,一旦我们有了双倍,我们就退出循环并打印出达到双倍所需的滚动数。

希望对你有帮助

【讨论】:

    【解决方案2】:

    只需删除else{}

    if ($v == $w) {
       echo "<p>It took $rollcount turns until double!</p>";
    }
    

    【讨论】:

      【解决方案3】:

      只需删除其他。就这么简单。

      【讨论】:

        猜你喜欢
        • 2019-09-07
        • 1970-01-01
        • 2020-11-20
        • 2019-05-29
        • 2011-09-13
        • 1970-01-01
        • 2021-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多