简单循环不工作 [已关闭]

2022-08-30 23:54:39

我刚刚开始学习编程。我正在学习循环,但这个程序没有按预期工作。我想在 等于 时中断循环,以便我获得输出,但我得到输出:($a31 23

for($a=0;$a<10;++$a)
{
       if($a==3)
               break
       print"$a ";
}

请帮忙。


答案 1

后记分号break


知道为什么你的程序会以这种方式运行是相当有趣的。

在 PHP 中的一般语法是:break

break Expression;

表达式是可选的,但如果存在其值,则表示要从中分解多少嵌套的封闭结构。

break 0;并且与break 1;break;

您的代码等效于

if($a==3)
       break print"$a ";

现在 PHP 中的打印函数始终返回 。因此,它等效于1

if($a==3)
       break 1;

所以什么时候打印它的值并中断。$a3

建议使用大括号将条件或循环的主体括起来,即使该主体具有单个语句也是如此。在这种情况下,将身体括在大括号中:if

if($a==3) {
  break
}
print"$a ";

会给出一个语法错误:PHP期望一个,但发现一个;}

上述所有内容也适用于 PHP。所以程序continue

for($a=0;$a<10;++$a)
{
       if($a==3)
               continue
       print"$a ";
}

也出于类似的原因进行打印。3


答案 2

您在休息结束时缺少一个分号。;)

即使使用分号,它也不会像您期望的那样工作,因为它将从 到 计数。你必须这样写才能得到.021 2

<?php
for($a=1;$a<10;++$a)
{
   if($a==3)
           break;
   print"$a ";
}
?>

注意 $a现在是 for 循环初始化中的一个。

编辑:我注意到你应该注意的另一件事。在 for 循环控制中,您有一个预增量 ()。这基本上意味着 PHP 递增的值,然后返回 。另一个选项是后增量 (),其中返回,然后递增 1。++$a$a$a$a++$a

在您的情况下,两种方式都会让您获得正确的输出。

这有时非常重要。请记住这一点。


推荐