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

您可以使用模运算符%来查看 $i 是否可以被三整除。这应该使您无法管理 $x

于 2012-04-17T13:38:53.810 回答
3

而不是使用$x,只需检查if( $i > 0 && $i % 3 == 0)。如果您还想在第一次运行时发生某些事情,只需放下$i > 0 &&零件。

于 2012-04-17T13:39:39.033 回答
2

嘶嘶声吧?你会想要模运算符 - %

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
}

基本上这实现了相同的逻辑;每第三次迭代,循环将运行您的额外代码。

于 2012-04-17T13:40:54.590 回答
0

在 $i 上使用模数:

for ($i = 0; $i < 100; $i++)
{
    if($i % 3 == 0)
    {
        // do something
    }
}
于 2012-04-17T13:39:26.363 回答
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 回答