2016-02-01 2 views
0

Я хотел бы получить этот результат:Петля для и возврата к началу

0 1 
1 1 
2 1 
3 1 
... 
19 1 

0 2 
1 2 
2 2 
3 2 
... 
19 2 

... 

0 10 
1 10 
2 10 
3 10 
... 
19 10 

, но я не знаю, что я делаю неправильно, используя этот код:

$p=0; 
for($i=0; $i<40; $i++) 
{ 
    if($i%20 == 0) 
    { 
     $p+=1; 
     $i=0; 
    } else { 
     echo $i.' '.$p; 
     echo '<br>'; 
    } 
} 

Когда я попробуйте запустить код, он длится вечно. Что я делаю не так? Пожалуйста, помогите мне. Благодарю.

+0

Какая часть этого кода вы ожидаете, чтобы остановить цикл? –

+1

Вы возвращаете $ i, когда он достигает 20, поэтому он никогда не достигнет 40, и поэтому цикл никогда не закончится. Извините, но если у вас есть проблемы с этим, у вас будет много более сложных проблем, чтобы получить среднюю проблему, решаемую с помощью программирования. – trincot

+0

Причина, по которой ваш код переходит в бесконечный цикл, обусловлен условием 'if'. когда 'i' достигает' 20', он сбрасывается на '0'! Это повторит то, что только что произошло, до тех пор, пока 'i' не достигнет' 20'. Это просто логическая ошибка, и вы можете легко ее понять. – Harsh

ответ

3

Вы должны использовать вложенные циклы для

for($i = 1; $i <= 10; $i++) { 
    for($j = 0; $j < 20; $j++) 
     echo $j . ' ' . $i . '<br>'; 

    echo '<br>'; 
} 
Смежные вопросы