Чтобы понять, запишите на листе бумаги, какими будут значения ваших переменных.
Сначала запишите значения x
:
x: 10 8 6 4
Далее,запишите рассчитанное значение верхней границы для y
, то есть результат выражения 2 * x - 2
:
x : 10 8 6 4
yMax: 18 14 10 6
Last, запишите значения y
:
x : 10 8 6 4
yMax: 18 14 10 6
y : 1 1 1 1
3 3 3 3
5 5 5 5
7 7 7
9 9 9
11 11
13 13
15
17
Наконец, подсчитайте количество y
значений для каждого x
значения, т. Е. Сколько раз будет напечатано S
:
x : 10 8 6 4
count: 9 7 5 3
. Затем поймите, что код будет гораздо проще понять, еслиэто только что было написано так:
for (int count = 9; count >= 3; count -= 2) {
for (int i = 0; i < count; i++) {
System.out.println("S");
}
}
Конечно, это не научило бы вас тому, что они пытались научить вас, а именно:
Заключение: Если вы не понимаете, что делает код, следуйте логике шаг за шагом и запишите, что он делает.