public class Puzzle4 {
public static void main(String[] args) {
int x = 0;
int y = 30;
for (int outer = 0; outer < 3; outer++) {
for (int inner = 4; inner > 1; inner--) {
x = x + 0;
y = y - 2;
System.out.println(y);
if (x == 6) {
break;
}
x = x + 3;
}
y = y - 2;
}
System.out.println(x + " " + y);
}
Всем доброго времени! Данный код взят из книги Head First Java. При выполнении данного кода получается вывод в консоль в виде :"6 14". Если взять листик и ручку и выполнить этот код самому то получается ответ :"6 6". Я начал разбираться в чем же причина, и натолкнулся на то что цикл for со значением outer = 2; не запускается. Я изменил break в условии if на х=x-3 (тоесть сделал то же самое что и делал break не давая выполняться строке x=x+3), и получил результат:"6 6". Напрашивается вывод что из-за многократного выхода из цикла посредством оператора break, не запускается цикл. Простите возможно за глупый вопрос, если можно хотелось бы понять в чем причина такого поведения кода.
Кажется, ты их перепутал:
break
завершает цикл целикомcontinue
завершает тело цикла, но продолжает сам циклВыкиньте x = x + 0;
это всё равно ничего не даёт, только вносит неразбериху в ваш неокрепший ум.
В таких случаях старайтесь искать проблему поэтапно,шаг за шагом.
Нормальные люди это делают с
помощью дебагера... предоставляю вам вариант курильщика.
int x = 0;
int y = 30;
for (int outer = 0; outer < 3; outer++) {
System.out.println("Цикл 1 работает " + outer + " / " + y);
for (int inner = 4; inner > 1; inner--) {
System.out.println("Цикл 2 работает " + outer + " / " + y);
y = y - 2;
System.out.println("Вычитание y = " + y);
System.out.println("x==6 ? - " + (x==6));
if (x == 6) {
break;
}
x = x + 3;
System.out.println("Сработал конец цикла 2");
}
y = y - 2;
System.out.println("Сработал конец цикла 1");
}
System.out.println(x + " " + y);
-> Надеюсь это поможет вам понять как устроены вложенные циклы. Придумайте свои метки в выводе в консоль, которые смогут предоставить вам картину.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Не могу разобраться, какой bind нужно прикручивать к элементам Java FX, чтобы получить эффект появления затухания, влияя на него из Task()
Пытаюсь сделать двохуровневое адаптивное менюВроде что-то получилось, но есть проблема, когда первый раз нажимать на пункт меню, то оно открывается...