условный оператор в цикле c ++ - PullRequest
0 голосов
/ 22 октября 2018
for (i = 1; i <= a; i++){
    for (b = 1; b <= i; b++){
        cout << "X";
    }
    cout << endl;
}

, если a = 4, результат будет

X

XX

XXX

XXXX

, тогда как результат этого

for (i = 1; i <= a; i++){
    for (b = 1; b <= a - i; b++){
        cout << "A";
    }
    cout << endl;
}

будет

AAA

AA

A

iПризнаю другое в условном утверждении, но я не могу объяснить это сам, почему так.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Посмотрите на ваши условия остановки для внутренних циклов:

b <= i;
b <= a - i;

Теперь давайте начнем с i, равным 1:

b <= 1;
b <= 3;

И, закончим с i будучи 4:

b <= 4;
b <= 0;

Учитывая ваши инициализации b:

b = 1;
b = 1;

Объедините их все => ваш диапазон цикла для b s будет [1; 4] и[3; 1].

0 голосов
/ 22 октября 2018

Для вашего первого примера первый цикл for с run, потому что 1 меньше, чем (4).Который затем перейдет к следующему циклу.Таким образом, b = 1, а 1 равно 1, что запустится и выведет X. Теперь этот цикл закончится, а внешний цикл for увеличится до 2 и будет повторяться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...