Как бы я изменил этот вложенный цикл? - PullRequest
0 голосов
/ 17 октября 2019

Сегодняшнее короткое домашнее задание для моего класса AP Computer Science состояло в том, чтобы изменить этот вложенный цикл так, чтобы он печатал 1, 3, 5, 7 звезд вместо 1, 2, 3, 4, 5, 6, 7 звезд.

Вот мой код:

public static void main(String args[])
    {
        //print 1,3,5,7 stars
        for(int i=1; i<=7; i++)
        {
            for(int j=1; j<=i; j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
    }

Ответы [ 3 ]

3 голосов
/ 17 октября 2019

Увеличение i на два, а не на один

for(int i=1; i<=7; i = i + 2)

или в соответствии с предложением @ andreas

for(int i=1; i<=7; i+= 2)

выход

*
***
*****
*******

edit

В соответствии с комментарием ниже @andreas, в java11 + возможно также следующее

for(int i=1; i<=7; i += 2)
    System.out.println("*".repeat(i));
1 голос
/ 17 октября 2019

Когда @ ScaryWombat уже ответил , вы можете увеличить i на два, чтобы получить желаемый шаблон. Я бы предпочел устранить вложенную структуру цикла;Вы знаете, что самый длинный результат - семь звезд, инициализируйте константу String и выведите соответствующую подстроку для каждой строки. Мол,

String stars = "*******";
for (int i = 1; i <= stars.length(); i += 2) {
    System.out.println(stars.substring(0, i));
}
0 голосов
/ 17 октября 2019

посмотрите на оператор по модулю %

, если я% 2 == 0

Я позволю вам поэкспериментировать.

...