2011-07-22 9 views
1

私は2,3の複数の助けを得ることを試みています。おかげこの単純なPHP数式を解決する

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/>'; 
+1

6についてはどうしますか? 17倍は何ですか? –

+0

@Kerrek 17は1と17の倍数なので、最後のステートメントはまだ有効です。しかし、あなたは約6点をあげました。 –

+1

この宿題はありますか? –

答えて

3

はこれを試してみてください:剰余が0ある場合

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

基本的にはその数が割り切れるであることを意味します。

しかし、別の問題は、数字が23の両方で割り切れることです。あなただけもうそれにかかわら落ちることができないので

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

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

しかし、休憩あなたの最後elseのその種:あなたは別のif文にこれらを抽出することによってこの問題を解決することができます。ループの最上部にある変数をfalseに設定することで解決できます。次に、ifステートメントのいずれかがトリガーされた場合は、変数をtrueに設定します。最後に、変数がまだfalseであれば、各反復の最後に「割り切れない」というメッセージを表示します。

+0

それはほとんど私の答えを与えているが、数字が2と3の両方の倍数であるときに問題になる。数が0であることは3 数が4の3is複数が2 数の倍数であるいくつかの他の数の1is複数 数が2である2 数の倍数である2 数の倍数であるいくつかの他の数 数の5is倍数であります図6は、2 数の倍数であるいくつかの他の数の7is複数 数が8である2 数の倍数である3 数の9is倍数が10であること2 数の倍数は、いくつかの他の数の11is倍数である 数であります12は2の倍数です – ktm

+0

最新の更新を見ましたか? –

+0

ありがとうございました – ktm

1

剰余がゼロの場合は、倍数であるため、(i%2)のNOTが必要です。

また、30の倍数を探している場合は、15までループする必要があります。または2/2です。

+0

あなたの追加はここには適用されません、それは目標ではありません –

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/>'; 
} 
0

前に、あなたの条件

if($i%2 === 0 && $i%3 === 0) { 
    echo 'multiple of 2 and 3\n'; 
} 

の場合にも使用する正しいかもしれ私は1つの以上の条件を追加します。

上記のため
if ($i%6 === 0) { 
.... 
} 

条件ます。

スイッチケースブロックを使用するとさらに優れています。

関連する問題