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