Доброго времени суток.
Помогите разобраться! Как это работает?
for(int i = 1; i <= 10; i++){
for(int j = i; j < 10; j++){
System.out.print(8);
}
System.out.println();
}
Этот код рисует триугольник верх ногами, почему?
если второй цикл записать так:
for(int j = i; j > 0; j--) или так: for(int j = 0; j < i; j++)
тогда все работает.
Никак не пойму принцип прохода цикла.
Помогите ПЛЗ.
Vlad Lunin
16 уровень
помогите разобраться
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vlad Lunin
2 февраля 2020, 14:35
Спасибо пояснения))
+1
Роман
22 января 2020, 07:10
for(int i = 1; i <= 10; i++){ - это строка отвечает за столбцы, переводит курсор на следующую строку.
for(int j = i; j < 10; j++) - эта за количество "8" в строке
Треугольник выводится повернутым, потому, в условии второго цикла указано, чтобы цикл продолжался, пока переменная j будет меньше 10.
for(int j = i; j < 10; j++){ - переменная i принимает значения от 1 до 10 по условиям первого цикла. Допустим первый проход: I=1, входим во второй цикл, а тут у тебя условие j = i ( то есть 1), цикл выполняется пока j не станет больше 10 (пока j <10 делай..), и увеличивай j на 1 при каждой итерации. Ну и вот: j = i =1 , 1 < 10 так что, условие проходит, цикл выведет "8", прибавит единицу к j, и так 9 раз пока j не станет равной 10, в итоге имеем девять "8" в первой строке. Далее (10<10) - ложь, выходим из второго цикла в первый, i увеличивается на 1, становится равной 2 и так далее.
for(int j = i; j > 0; j--) здесь же j = i = 1 (при первом прохождении цикла), итерация сработает только один раз, выведется "8", и j уменьшится на единицу и станет равной 0( j--), условие j > 0 не сработает и мы выходим в первый цикл.
+2