| |
|
|
| |
for($i = 1; $i<3; $i = $i + 1) {
for ($j =1; $j<3; $j=$j + 1) {
for($k=1; $k<3; $k =$k+1) {
print "I: $i, J:$j , K: $k\n";
}
}
}
|
Проследите за ходом моих мыслей и скажите ,плис, где ошиба:
Переменная $i равен 1 ,1<3,переменная i увеличивается на единицу(счетчик т.е значение увеличивается,но в блок цикла идет предыдущее значение то есть 1
Переменная $j=1,1<3,пееремнная $j увеличивается на единицу(счетчик)
Переменная $j=1,1<3,пееремнная $j увеличивается на единицу(счетчик)
вывод на экран I: 1, J: 1, K: 1
Переменная $j=2,2<3,пееремнная $j увеличивается на единицу
Переменная $k=2,2<3,пееремнная $k увеличивается на единицу
Переменная $i=2,2<3,пееремнная $i увеличивается на единицу
вывод I: 1, J: 1, K: 2
Переменная $k=3,3<3 неверно поседний цикл останавливается
Переменная $j=2,2<3,пееремнная $j увеличивается на единицу
Переменная $i=2,2<3,пееремнная $i увеличивается на единицу
вывод на экран I: 2, J: 2, K: честно говоря не знаю.Но должно 1(почему?)
Вот ошибки,запутался в 3 соснах
А правильный ответ следующий:
I: 1, J: 1, K: 1
I: 1, J: 1, K: 2
I: 1, J: 2, K: 1
I: 1, J: 2, K: 2
I: 2, J: 1, K: 1
I: 2, J: 1, K: 2
I: 2, J: 2, K: 1
I: 2, J: 2, K: 2
А с break;
все совсем осложняется,непонятно после прерывания логика вывода цифр.
for($i = 1; $i<3; $i = $i + 1) {
for ($j =1; $j<3; $j=$j + 1) {
for($k=1; $k<3; $k =$k+1) {
print "I: $i, J:$j , K: $k\n";
break;
}
}
}
|
ответ
I: 1, J: 1, K: 1
I: 1, J: 2, K: 1
I: 2, J: 1, K: 1
I: 2, J: 2, K: 1
извините за <<корявость>> изложенного,просто уже башка болит от этих циклов.
спасибо | |
| |
|
|
| |
|
|
| |
для: lgar
(04.08.2006 в 16:06)
| | | не так вы объясняете: цикл работает пока условие выполняется. Так что единица прибавляется только после прохода цикла. Так что результат вполне закономерный: сначала полностью прокручивается цикл K, потом наступает следующий этап цикла J, в котором снова прокрувичается K, когда полностью прокрутится J начинается следующий проход I и так далее.
break, в данном случае, прерывает цикл k, так что тут он циклом и не является, так как исполняется всего один раз.
попробуйте использовать
break 2;
break 3;
первый будет прерывать сразу два вложенных цикла, второй - все три. | |
| |
|
|
|