Основи програмування на С ++ для початківців

Вложенные циклы в C

вложенные циклы C++Ми з вами встигли познайомитися з трьома конструкціями повторення в мові програмування C ++. це циклиfor, while и do while. Если вы обратили внимание, вкладення конструкцій логічного вибору if і else в цикли вже застосовувалося. Сейчас же мы рассмотрим вложенные циклы – это когда в теле одного цикла (внешнего) размещается другой цикл (внутренний). Таких вложенных циклов во внешнем цикле может быть несколько.

По своей структуре, вложенные циклы напоминают мне коробки разных размеров, как на нашем рисунке. Ці коробки легко можна скласти один в одного і помістити в одну велику коробку. Так и с циклами. Программе, чтобы добраться к вложенному циклу, необходимо сначала приступить к выполнению внешнего цикла (открыть крышку большой коробки), выполнить, то що прописано в коді до вкладеного циклу і потім вже приступити до виконання цього циклу.

Есть один интересный распространённый пример, для демонстрации работы вложенных циклов. Рассмотрим его: применяя циклы, необхідно намалювати прямокутник розміром 5 х 15 из символов @.

Сначала начинает выполняться цикл for в строке 6. Так як в його тілі нічого не прописано до другого циклу, программа сразу приступает к выполнению этого вложенного цикла – строки 8 – 11. В результате его выполнения, на экране в одной строке отображаются 15 символов @ и происходит выход из него. Тут сработает cout  в строке 12, управляющая переменная i увеличится на единицу и продолжится выполнение главного и вложенного циклов. То есть снова 15 символов на экране и переход на строку ниже. Так будет сделано 5 раз, после чего программа завершит работу. На экране видим то, что было в условии:

вложенные циклы в C

Можно эту задачу немного усложнить. Теперь пусть символ для печати фигуры выбирает пользователь, посредством ввода с клавиатуры. Он же выберет размер – ширину и высоту. Еще одно новшество – фигура должна быть пустой, а не заполненной, как в нашем предыдущем примере. То есть она должна состоять только из контура. Вот наше решение:

Результат зависит от введенных данных, которые задаст пользователь. У меня получился черный квадрат из вопросов :)

вложенные циклы в C++

Еще один пример: печать таблицы умножения.

В результате увидим таблицу умножения:

вложенные циклы в C++

вложенные циклы в C++

.

.

.

.

.

.

.

.

.

На рисунках показаны только начало и конец таблицы.

Надеюсь урок был для вас полезен. Вложенные конструкции в программировании на C встречаются достаточно часто. Обязательно рассмотрите задачи, которые мы приготовили. Если у вас остались какие-то вопросы по теме – ждем их в комментариях.

42 думки про "Вложенные циклы в C

  1. вибачте я новачок і для мене стало питання, а чим це відрізняється від звичайного for

    1. ні чим. просто можна писати код по-різному
      хочеш використовувати фор сам знаєш

  2. че за клоун це писав, че за клоун це писав, че за клоун це писав, че за клоун це писав

  3. Тут у прикладах у циклах for немає відступів, важко розібратися. Возможно, раніше так писали? Початківцям раджу звернути на це увагу, пошукати тему ще десь. Все одно дякую за урок, мені було невідомо, як у консолі виводити такі рамки.
    (нижче приклад актуальний, якщо збережуться відступи. Не знаю, яке тут форматування у коментарях)
    for (size_t i = 0; i < 5; i ) {
    for (size_t j = 0; j < 15; j ) {
    cout << '@';
    }
    cout << endl;
    }

    1. Нет, не збереглися. В загальному, використовуйте Tab, коли пишете код.

  4. Всім доброго часу доби , прохання : дайте більш детальне та повне роз'яснення щодо побудови контурного прямокутника рядково. Особливо з 29 строки по 36. При заповнених рядках все зрозуміло ,проблем немає. А тут складніше. Не зрозумію хід думки .
    Якщо не важко !
    Наперед дякую.

    1. Здрастуйте всім! Хочу підтримати проханням дати покрокове пояснення коду рівнобедреного трикутника , заповнюваного по периметру ! Для мене незрозуміло також , чому код односторонній щодо пробілів.
      Тому , хто допоможе – море подяки та позитиву!

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *