2

PHPでは、次のようなループを実行しています

    $x = 0;

    for ($i = 0; $i < 100; $i++)
    {
        if ($x == 3)    //better way to do this? in this example, determine every 3 times in a loop
        {
            //"do something"
            $x = 0;
        }

        $x++;

ご覧のとおり、3回ループするたびにループで何かをしていますが、問題は、ループで「何かをする」時が来たかどうかを見つけるためのより良い、より簡単な方法はありますか?

4

8 に答える 8

5

モジュロを使用できます:

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

(それが 0 よりも優れているかどうかを確認することを忘れないでください。または、最初の反復で if に入ります。

于 2012-04-17T13:38:52.387 に答える
3

を使用する代わりに$x、チェックしてくださいif( $i > 0 && $i % 3 == 0)。最初の実行でも何かを実行したい場合は、$i > 0 &&パーツをドロップしてください。

于 2012-04-17T13:39:39.033 に答える
3

モジュラス演算子を使用して%、$i が 3 で割り切れるかどうかを確認できます。これで $x を管理できなくなるはずです

于 2012-04-17T13:38:53.810 に答える
2

フィズバズか?Modulo 演算子が必要です - %

if ((6 % 3) == 0) {
    echo "is divisable by three";
}
于 2012-04-17T13:39:41.390 に答える
2

モジュラス演算子を使用して $x 変数を回避できます。

if ($i % 3 == 0 && i > 0){
    // Do something
}

基本的に、これは同じロジックを実装しています。3 回目の繰り返しごとに、ループは追加のコードを実行します。

于 2012-04-17T13:40:54.590 に答える
0
for ($i = 0; $i < 100; $i++) {
    {
        if($i%3==0){
       //Do Something
     }
 }
于 2012-04-17T13:40:13.260 に答える
0

このコードで:

for ($i = 0; $i < 100; $i++)
    {
        if(($i%3==0) && $i>0)
        {
           //Do Something   #first will be after 4 time
        }
    }

しかし、これは:

for ($i = 1; $i <=100; $i++)
    {
        if($i%3==0)
        {
           //Do Something   #even first will be after 3 time 
        }
    }
于 2012-05-13T16:55:49.477 に答える
0

$i でモジュラスを使用:

for ($i = 0; $i < 100; $i++)
{
    if($i % 3 == 0)
    {
        // do something
    }
}
于 2012-04-17T13:39:26.363 に答える