当我尝试使用下面的代码作为$ j的后增量或预增量时,结果总是相同的。你知道为什么吗?请告诉我。谢谢。
<?php
$j = 1;
while( $j < 20 ) {
$j++;
echo "1 * $j is equal to $j <br/>";
}
?>
答案 0 :(得分:2)
在此代码中:
$j = 1;
while( $j < 20 ) {
$j++;
echo "1 * $j is equal to $j <br/>";
}
无论你在这里写$j++;
还是在++$j;
写这都没关系,因为$j++
本身就是一行。它不是$j
增量之前或之后的另一个表达式的一部分。当它在一条线上$j++;
和++$j;
做同样的事情。问问自己:“在什么之前增加$j
?”或“在{”之后增加$j
?
现在,如果你有了:
$j = 1;
while( $j++ < 20 ) {
echo "1 * $j is equal to $j <br/>";
}
在将其值与20进行比较后, $j
将递增。此循环将在2到19的输出中显示$j
的值。
然而,如果你写了
$j = 1;
while( ++$j < 20 ) {
echo "1 * $j is equal to $j <br/>";
}
在 $j
与20进行比较之前,$j
的值会增加。此循环将在2到20的输出中显示$j
的值
那是因为现在$j
是一个更大的表达式的一部分,其中增量的顺序很重要。
答案 1 :(得分:0)
在这个代码$ j = 1中我们初始化然后我们检查它满足条件的条件然后它增加$ j = 2的值现在$ j的原始值是2.因此在echo语句中1 * $ j是等于$ j表示1 * 2等于2。 像这样,所有迭代都将跟随循环结束。 好像我们使用相同情况的预增量将发生第一个值增量,然后通过原始值计算相同的输出