我无法解决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等......
答案 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