2016-08-10 2 views
1

Я не могу решить проблему с циклом for в php.Последовательность, генерирующая for for loop php

Числа, которые я должен вывести являются:

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 и т. д.

Любые идеи?

EDIT:

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, +6 -8, и так далее ...

+0

@MarkusLaire Проверьте редактирования пожалуйста – Morpheus

+0

@spirytusrektus Я попробовал, и я был не в состоянии решить, что путь ... Попробую еще раз. – Morpheus

+0

Извините, я отредактировал свой вопрос. – Morpheus

ответ

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