我正在通过Welling& amp;的PHP和MySQL Web开发工作。汤姆森。
在生成器上有一段代码示例(清单6.5第193页):
<?php
function fizzbuzz($start, $end)
{
$current = $start;
while ($current <= $end) {
if ($current%3 == 0 && $current%5 == 0) {
yield "fizzbuzz";
} else if ($current%3 == 0) {
yield "fizz";
} else if ($current%5 == 0) {
yield "buzz";
} else {
yield $current;
}
$current++;
}
}
foreach(fizzbuzz(1,20) as $number) {
echo $number.'<br />';
}
?>
我在第7行中知道它意味着是否可以被3或5整除&#34; fizzbuzz。&#34;但是,当我看到它时,我将该行解释为(如果当前变量可被3整除并等于零&#34;和#34;如果当前变量可被5整除且等于零)。
如果它等于零,则它不能被3或5整除。但是,代码有效。那么== 0部分的平均值是否等于3或5而没有剩余的部分数?
答案 0 :(得分:1)
%表示模量。你除以余数,然后看看余数是否等于零。如果A%B == 0,则A可被B整除。
一些例子:
7%2 = 1
10%4 = 2
100%4 = 0
37%19 = 18
3337%78 = 61
在该行上它意味着&#34;如果当前可被3整除并且也可以被7&#34;整除。
答案 1 :(得分:0)
我想我明白你哪里出错了。陈述1 modulus 3 = 1
2 modulus 3 = 2
3 modulus 3 = 0
4 modulus 3 = 1
5 modulus 3 = 2
6 modulus 3 = 0
(我为可读性添加了几个空格)真的说'#34; $ current modulus 3等于0.&#34;
我们使用模数函数来确定某些东西是否可以被整除而没有余数,并且当结果为零时会发生这种情况。换句话说......
{{1}}
如您所见,当数字可以被整除时,结果只为零。