首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解释生成器语句: if ($current%3 == 0& $current%5 == 0)

问如何解释生成器语句: if ($current%3 == 0& $current%5 == 0)
EN

Stack Overflow用户
提问于 2018-02-13 23:41:43
回答 2查看 50关注 0票数 0

我正在用我的方式阅读MySQL和PHP开发书籍,这本书是由威林和汤姆森撰写的。

生成器上有一段示例代码(清单6.5pg 193):

代码语言:javascript
复制
<?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,没有剩余的部分数?

EN

回答 2

Stack Overflow用户

发布于 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整除”。

票数 1
EN

Stack Overflow用户

发布于 2018-02-13 23:50:02

我想我知道你哪里出错了。$current % 3 == 0语句(我为可读性添加了几个空格)实际上是"$current模数3等于0“。

我们使用模数函数来确定某物是否可以被除以而没有余数,当结果为零时,就会发生这种情况。换句话说..。

代码语言:javascript
复制
1 modulus 3 = 1
2 modulus 3 = 2
3 modulus 3 = 0
4 modulus 3 = 1
5 modulus 3 = 2
6 modulus 3 = 0

正如您所看到的,当数字是均匀可除的时,结果仅为零。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48777472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档