生成for循环php的序列

时间:2016-08-10 14:38:23

标签: php loops conditional-statements

我无法解决php中for循环的问题。

我应该输出的数字是:

10,8,11,3,9,7,10,2,8

$n = 10;
for ($i = 0; $i < 10; $i++) {
     if ($i == 0){
       $n = $n - 2;
     } else if ($i == 1) {
       $n = $n + 3;
     } else if ($i == 2) {
       $n = $n - 8;
     } else if ($i == 3) {
       $n = $n + 6;
     }
}

这是错误的方式,我知道,但我不知道该怎么做,所以当$ i = 4时,它的计算应与$ i = 0相同,等等。 。

有什么想法吗?

编辑:

first number in the sequence is 10
second: 10 - 2 = 8
third: 8 + 3 = 11
forth: 11 - 8 = 3
fifth: 3 + 6 = 9

然后重复-2,+ 3,-8,+ 6等......

1 个答案:

答案 0 :(得分:2)

modulus operator (%)是最好的方法 - 每次运行循环都会将模数增加1,直到它再次循环回零,以便根据需要进行多次迭代。

<?php
$number = 10;
$iterations = 10;

for ($i=0; $i<$iterations; $i++) {
  echo $number, PHP_EOL;
  switch ($i % 4) {
    case 0:
      $number -= 2;
      break;
    case 1:
      $number += 3;
      break;
    case 2:
      $number -= 8;
      break;
    case 3:
      $number += 6;
      break;
  }
}

=

10
8
11
3
9
7
10
2
8
6

请参阅:https://eval.in/620557