Задачу решил при помощи добрых людей в коментах плюс тупым подбором значений и знаков. Но хотелось бы понять как это работает(((
Вкратце, не вижу почему у нас второй цикл печатает 8 в первом круге 1, во втором 2 в третьем 3 и т.д. Распишу свой ход мыслей (скорее всего не правльный):
Круг 1:
- создаётся int a = 0;
- Условие "a<10" соблюдается (0<10), входим в первый цикл, где встречаем сразу второй цикл;
- создаётся переменная int b = 0;
- Условие "b<=a" соблюдается (0=0), входим во второй цикл, который печатает одну 8;
- После завершения второго цикла переменная b = 1;
- Продолжаем первый цикл, который переносит нас на новую строку и увеличивает а на 1, теперь "а=1";
Круг 2
- int a = 1; Условие "a<10" соблюдается (1<10), входим в первый цикл, где встречаем второй цикл;
- У нас int b = 1;
- Условие b<=a, соблюдается (1<=1), входим во второй цикл, который печатает одну 8;
- После завершения второго цикла переменная b = 2;
- Продолжаем первый цикл, который переносит нас на новую строку и увеличивает а на 1, теперь "а=2";
Вот тут где-то я туплю, ведь по моей логике, должно быть две 8 в две строки вот так:
8
8
А он выводит вот так:
8
88.
Почему он второй цикл проиграл 2 раза непонятно. Единственное предположение пока что после каждого круга, переменная "int a" увеличивается на 1, а вот переменная "int b" в каждом круге начинается с 0 и выполняется до тех пор, пока она перестанет соответствовать условию "b<=a". И перенос на новую строку происходит только тогда, когда второй цикл не перестанет выполняться. ПаМаГИте))))
package com.javarush.task.task04.task0437;
/*
Треугольник из восьмерок
*/
public class Solution {
public static void main(String[] args) {
for (int a = 0; a<10;a++){
for (int b = 0; b<=a;b++){System.out.print("8");}
System.out.println();
}
}
}