Пожалуйста, объясните, правильно ли я понимаю:
int x = 1; //переменная, кот отвечает за строку и переменная, кот мы в интерациях цикла будем
умножать на вторую переменную (у)
int y = 1; // отвечает за столбец и переменная, на кот умножаем
while (x<=10){// ВНЕШНИЙ ЦИКЛ: пока x<=10
System.out.print(x+" ");// печатаем значение х + пробел(в первой интерации он = 1)
while (y<=9){// ВНУТРЕННИЙ ЦИКЛ: пока y<=9 (почему 9, а не 10?)
y++;// увеличиваем у на 1 (в первой интерации становится 2)
int umn = x*y;// и умножаем х*у, тем самым получаем в той же первой интерации 2
System.out.print(umn+" ");// печатаем результат
пока у нас выводится 1 2, дальше
} И ВОТ ЗДЕСЬ ЗАСАДА! По идее, цикл while работает, пока условие истинно. Как это работает?
x++;
y=1;
System.out.println("");
}
Маргарита Тур
7 уровень
Логика циклов(код)
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Tanarri
29 января 2019, 18:19
можно сделать y<= 10
тогда можно будет выкинуть System.out.print(x+" "); из внешнего цикла и чуток изменить внутренний
+1
Максим
28 января 2019, 22:10
Почему 9, а не 10, смотри
твой код внутреннего цикла:
while (y <= 9){
y++;
int umn = x * y;
System.out.print(amn + " ");
}
Предположим, что у = 8.
8 <= 9 - true
8 становится 9
умножаем уже на 9 (хотя проверяли на 8)
и выводим результат.
Дальше у нас у = 9. 9 <= 9 опять true И ТОЛЬКО ПОСЛЕ ПРОВЕРКИ УСЛОВИЯ МЫ УВЕЛИЧИВАЕМ У НА 1. И после этого мы х умножим на у == 10 (хотя проверяли 9).
То есть сначала проверка условия, потом +1, и в конце умножение.
Почему же тогда во внешнем цикле <= 10?? А там последовательность действий другая.
Советую зайти в idea и запустить отладку. Сразу всё проясниться
Объяснять как-то трудно (((
0
Маргарита Тур
29 января 2019, 09:17
Спасибо, поняла))))) у увеличиваем сразу после входа в цикл, т.е. в первой интерации он уже =2
0
hidden #598481
29 января 2019, 09:33
мне кажется здесь логичнее использовать цикл for, с ним понятнее чему на какой итерации равен индекс каждого из циклов.
+1
Маргарита Тур
29 января 2019, 15:11
О, я с вами абсолютно согласна)))
0
hidden #598481
29 января 2019, 15:15
А, это требование задачи такое. Тогда я здесь не в кассу со своими замечаниями :) Справилась?
0
Маргарита Тур
29 января 2019, 15:20
Да!!! И, главное, разобралась)))
0
hidden #598481
29 января 2019, 15:23
Молодец!
Тогда вопрос закрывай, чтобы не висел попусту
0
DinosauR
28 января 2019, 21:54
А чей это код?
0
DinosauR
28 января 2019, 22:04
Блин, много букаф, кровь в газах)
так лучше:
+2
DinosauR
28 января 2019, 22:09
потому что в каждой строчке уже есть первый символ, его туда всунул System.out.print(x+" "); из (внешнего) цикла.
+1
ДмитрийExpert
17 февраля 2019, 01:57
классно вот еще бы самому догнать решение было бы лучше
0