我刚开始学习编程。我正在研究 for 循环,但该程序无法按预期工作。我想在
$a
等于时打破循环,3
以便获得输出1 2
,但我得到3
输出:(
for($a=0;$a<10;++$a)
{
if($a==3)
break
print"$a ";
}
请帮忙。
后面缺少分号break
知道为什么你的程序会以它的方式运行是相当有趣的。
PHP中的一般语法break
是:
break Expression;
该表达式是可选的,但如果存在,它的值会告诉有多少嵌套的封闭结构要被打破。
break 0;
和break 1;
一样break;
您的代码相当于
if($a==3)
break print"$a ";
现在print
PHP 中的函数总是返回1
. 因此它等价于
if($a==3)
break 1;
所以你什么时候$a
打印3
它的值并中断。
建议使用大括号将条件或循环的主体括起来,即使主体只有一条语句。在这种情况下,将if
主体括在大括号中:
if($a==3) {
break
}
print"$a ";
会给出一个语法错误:PHP 期望 a;
但找到 a}
以上所有内容也适用于 PHP continue
。所以程序
for($a=0;$a<10;++$a)
{
if($a==3)
continue
print"$a ";
}
3
也出于类似的原因打印。
您在休息结束时缺少一个分号。;)
即使使用分号,它也不会像你期望的那样工作,因为它会从0
to计数2
。你必须这样写才能得到 only 1 2
。
<?php
for($a=1;$a<10;++$a)
{
if($a==3)
break;
print"$a ";
}
?>
注意 $a 现在是 for 循环初始化中的一个。
编辑:我注意到您应该注意的另一件事。在您的 for 循环控制中,您有一个预增量 ( ++$a
)。这基本上意味着 PHP 增加 的值$a
然后返回$a
. 另一种选择是后增量 ( $a++
) ,其中$a
返回然后加一。
在您的情况下,两种方式都会为您提供正确的输出。
这有时非常重要。要时刻铭记在心。
正如 codaddict 所说,您在休息后缺少分号。
您的代码应如下所示:
for($a=0;$a<10;++$a)
{
if($a==3)
break;
echo $a, ' ';
}
for($a=0;$a<10;++$a)
{
if($a==3) break;
print $a;
}
@Downvoters:除了我简洁之外还有什么问题?
echo
代替print
. _
for($a=0;$a<10;$a++) {
if($a==3) { exit; }
else { echo $a; }
}