Как тут все работает? Особенно счетчик

Не очень понятно как тут все работает и особенно счетчик. Буду благодарен если "на пальцах" объясните что тут и как пошагово происходит...

    public class HelloWorld {
    public static void main(String[] args) {
        double metrs, inches;
        int counter;

        counter = 0;
        for (metrs = 1; metrs <= 144; metrs++) {
            inches = metrs * 3.7854;
            System.out.println(metrs + " метрам соответствует " + inches + " дюймов.");

            counter++;
            if (counter == 12) {
                System.out.println();
                counter = 0;
            }
        }
    }
}

Ответы (2 шт):

Автор решения: Andrew
public static void main(String[] args) {
    double metrs, inches; // объявляем переменные длины
    int counter; // объявляем переменную счетчика

    counter = 0; // присваиваем значение 0 для счетчика
    for (metrs = 1; metrs <= 144; metrs++) { // стартует цикл от 1 до 144 и на каждом проходе переменная metrs увеличивается на +1
        inches = metrs * 3.7854; // вычисляем дюймы используя текущее значение переменной merts (inches = 1*3.7854...144*3.7854)
        System.out.println(metrs + " метрам соответствует " + inches + " дюймов.");

        counter++; // увеличиваем счетчик на +1 (обычный инкремент)
        if (counter == 12) { // когда счетчик достигает значения 12 мы его обнуляем и печатает пустую строку
            System.out.println(); // печатаем пустую строку
            counter = 0; // присваиваем значение счетчику 0 то есть обнуляем
        }
    }
}
→ Ссылка
Автор решения: Denis Kukharenko

Запускается приложение -> Запускается метод main -> В нем объявляются переменные: Две переменные типа double, для чисел с плавающей точкой, с названиями metrs, inches. И одна переменная типа int, для целых чисел, с названием counter. -> Присаваиваем переменной counter значение 0.

Далее запускается цикл. В его условии даем переменной metrs значение 1.0 и говорим ему выполнятся пока значение metrs меньше или равно 144. в конце каждой итерации добавляем к metrs + 1.0

Происходящее уже в цикле:

Переменной inches присваиваем значение metrs умноженное на 3.7854 Выводим в консоль значение metrs и inches с описанием Прибавляем к значению counter +1 (инкрементируем)

Запускается оператор if, который проверяет условие. Если значение переменной counter равно 12 то с помощью System.out.println() создаем пустую строку в выводе, а затем присваиваем переменной counter значение 0.
Если counter не равен 12 то это действие пропускается и начинается новая итерация цикла for.

→ Ссылка