我正在用我的方式阅读MySQL和PHP开发书籍,这本书是由威林和汤姆森撰写的。
生成器上有一段示例代码(清单6.5pg 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的产量“fizzbuzz”。但是,当我查看它时,我将该行解释为(如果当前变量可被3整除,等于零“和”如果当前变量可被5整除,等于零)。
如果它等于零,那么它就不会被3或5整除。但是,代码可以工作。那么,== 0部分是否等于除以3或5,没有剩余的部分数?
发布于 2018-02-13 23:46:01
%表示模数。除以余数,然后查看余数是否等于零。如果A% B == 0,则A可以被B整除。
下面是一些例子:
7%2=1
10 %4=2
100 %4=0
37 % 19 = 18
3337 % 78 = 61
在这条线上,它的意思是“如果电流可被3除,也可被7整除”。
发布于 2018-02-13 23:50:02
我想我知道你哪里出错了。$current % 3 == 0语句(我为可读性添加了几个空格)实际上是"$current模数3等于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正如您所看到的,当数字是均匀可除的时,结果仅为零。
https://stackoverflow.com/questions/48777472
复制相似问题