解决这个简单的PHP数学

时间:2011-07-22 02:07:45

标签: php

我想获得多个2和3的帮助。感谢

for($i = 0; $i <30; $i++) 
if($i % 2)
echo 'number is '. $i . ' is multiple of 2 <br/>';
elseif($i %3)
echo 'number is '. $i . 'is multiple of 3 <br/>';
else
echo 'number is '. $i . 'is multiple of some other number <br/>';

4 个答案:

答案 0 :(得分:3)

试试这个:

if($i % 2 === 0)
  ...
elseif($i %3 === 0)
  ...

基本上,如果模数为0,那么这意味着数字可以被整除。

但是,您的逻辑的另一个问题是,23可以将数字整除。您可以通过将这些解析为单独的if语句来解决此问题:

if($i %2 === 0) {
  ... 
}

if($i %3 === 0) {
  ... 
}

但是那种打破了你的上一次else,因为你不能再陷入其中了。您可以通过在循环顶部将变量设置为false来解决此问题。然后,如果触发了任何if语句,请将变量设置为true。最后,如果变量仍为false,则在每次迭代结束时打印“不可分割”消息。

答案 1 :(得分:1)

你想要一个NOT if(i%2)因为如果余数为零则它是一个倍数。

此外,如果你试图找到30的倍数,你只需要循环到15或数字/ 2.

答案 2 :(得分:0)

for($i = 0; $i < 30; $i++) 
{
if($i % 2 == 0)
    echo 'number is '. $i . ' is multiple of 2 <br/>';
elseif($i % 3 == 0)
    echo 'number is '. $i . 'is multiple of 3 <br/>';
else
    echo 'number is '. $i . 'is multiple of some other number <br/>';
}

答案 3 :(得分:0)

我会在if条件

之前添加一个条件
if($i%2 === 0 && $i%3 === 0) {
    echo 'multiple of 2 and 3\n';
}

使用也可能是正确的:

if ($i%6 === 0) {
 ....
}

以上if条件。

如果使用开关盒块,情况会更好。