Когда drawInterval(majorLength - 1)
или drawInterval(centralLength - 1);
вызывается с 0, вызовы интервала отрисовки будут пропущены, а рисование линий будет drawLine(majorLength, j)
для j <= nInches
раз.Так что ваша рекурсия плохая - нигде не должно быть цикла, это сам цикл.
Например, drawRuler(1, 99)
нарисует 99 линий в 1.
Вот шаги, которые нужно предпринять:
Вызывает рисование линии в 0, затем инициализирует цикл for,
Первая итерация цикла for, majorLength - 1, равна нулю, поэтому интервал отрисовки не используется.
Затем он вызывает линию рисования с 1 и 0.
Затем он зацикливается, и majorLength - 1 по-прежнему равен нулю, поэтому интервал рисования no-ops, и линия рисования вызывается с 1 и 1.
Затем он повторяется до j = 99, каждый раз вызывая рисовать линию (1, j), таким образом рисуя 99 линий.
Любые проблемы, с которыми вы сталкиваетесь, связаны с смешением рекурсии и циклов.Вы должны быть чрезвычайно осторожны с этим.