While c что это
Перейти к содержимому

While c что это

  • автор:

#5 — Циклы в Си и операторы в них

За счёт циклов вы можете создавать повторяющийся код множество раз подряд. В языке Си существует несколько циклов, а также операторов в них. За урок мы научимся работать с циклами в Си.

Видеоурок

В языке Си, как и в большинстве других языков, существует 3 вида циклов. Каждый из них выполняет одну и ту же роль, но записывается по-разному. Рассмотрим все три цикла.

Цикл For

В цикле for все условия записываются в одном месте, что очень удобно во многих случаях. Стандартная запись такого цикла выглядит следующим образом:

for (int i = 0; i < 10; i++) printf("%d\n", i);

В объявлении цикла записывается следующее: переменная цикла, её начальное значение и диапазон. В примере выше будут выведены числа от 0 до 10.

Если в теле цикла всего одна строка кода, то фигурные скобки можно пропустить и не записывать их.

Цикл While

Суть цикла while не особо отличается от цикла for . Единственное отличие заключается в способе записи цикла. В while необходимо прописать лишь условие, а все остальные параметры записываются вне цикла:

int i = 1; // Создание переменной while (i 

Цикл Do While

Цикл схож с циклом while по форме написания, но при этом работает немного по-другому. Цикл do..while будет выполнен один раз сто процентов, а дальше проверит условие и если оно верно, то цикл будет выполняться дальше:

int x = 13; do < x--; printf("%d\n", i); >while (x > 10);

Как видно из примера, цикл изначально неверный, но это не мешает ему сработать один раз.

Операторы для работы в циклах

Существует два основных оператора для работы в циклах:

  • Оператор break - служит для выхода из цикла полностью;
  • Оператор continue - пропускает лишь одну итерацию и не выходит из цикла.
Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

WHILE

где оператор - это или пустой, или простой, или составной оператор. Условием может любое выражение, имеющее в качестве истины ненулевое значение. Цикл выполняется, пока условие истинно. Когда условие становится ложным, выполняется строка, следующая за циклом.

Следующий пример показывает процедуру, обрабатывающую ввод с клавиатуры, работающую пока не будет введен символ А:

void wait_for_char(void)
char ch;
ch = '\0'; /* инициализация ch */
while(ch!='A') ch = getchar ();
>

Сначала ch устанавливается в 0, Цикл while начинается с проверки ch на равенство А. Поскольку ch инициализировано нулем, проверка выдаст истину и цикл начнется. При каждом нажатии клавиши на клавиатуре условие проверяется повторно. Если введено А, условие становится ложным и цикл прекращается.

Как и цикл for, цикл while сначала выполняет проверку, то есть тело цикла может вообще не выполняться. Благодаря этому можно не выполнять отдельные проверки перед циклом. Хорошей иллюстрацией этого является функция pad(), добавляющая пробелы к концу строки до достижения предопределенной длины. Если строка уже имеет необходимую длину, то пробелы не будут добавляться:

/* Добавляет пробелы к концу строки */

void pad (char *s, int length)
int l;
l = strlen(s); /* определение длины */
while (l s[l] = ' '; /* вставка пробела */
l++;
>
s [ l ] = '\0'; /* строки должны заканчиваться нулем */
>

Аргументами pad() являются s - указатель на удлиняемую строку и length - желаемая длина s. Если строка s имеет длину, равную или больше length, то код внутри цикла не будет выполняться. Если длина строки s меньше чем length, то pad() добавляет требуемое число пробелов к строке. Функция strlen(), являющаяся частью стандартной библиотеки, возвращает длину строки.

Когда необходимо несколько различных условий для окончания цикла while, как правило, используют одну переменную, являющуюся результатом действия этих условий, причем значение этой переменной может устанавливаться в различных частях цикла. Например:

void func1 (void)
int working;
working = 1; /* т.е. истина */
while(working)
working=process1();
if(working)
working=process2();
if(working)
working=process3();
>
>

Здесь любая из трех подпрограмм может вернуть ложь и вызвать остановку цикла. В теле цикла может и не быть никаких операторов. Например:

while ((ch = getchar()) != 'А');

просто зацикливается до тех пор, пока с клавиатуры не введется буква А. Если нет уверенности в использовании оператора присваивания внутри проверки выражения цикла while, надо помнить, что знак равенства на самом деле просто оператор, вычисляющий значение стоящего справа операнда.

Циклы в C++ — урок 4

Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до 1000.

Цикл for

Если мы знаем точное количество действий (итераций) цикла, то можем использовать цикл for . Синтаксис его выглядит примерно так:

for (действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла)

Итерацией цикла называется один проход этого цикла

Существует частный случай этой записи, который мы сегодня и разберем:

for (счетчик = значение; счетчик

Счетчик цикла — это переменная, в которой хранится количество проходов данного цикла.

Описание синтаксиса

  1. Сначала присваивается первоначальное значение счетчику, после чего ставится точка с запятой.
  2. Затем задается конечное значение счетчика цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится. Снова ставим точку с запятой.
  3. Задаем шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться счетчик цикла при каждом проходе.

Пример кода

Напишем программу, которая будет считать сумму всех чисел от 1 до 1000.

#include using namespace std; int main() < int i; // счетчик цикла int sum = 0; // сумма чисел от 1 до 1000. setlocale(0, ""); for (i = 1; i cout массивами (о них будет рассказано в следующем уроке). Значение шага цикла я задал равное единице. i++ — это тоже самое, что и i = i + 1.

В теле цикла, при каждом проходе программа увеличивает значение переменной sum на i. Еще один очень важный момент — в начале программы я присвоил переменной sum значение нуля. Если бы я этого не сделал, программа вылетела вы в сегфолт. При объявлении переменной без ее инициализации что эта переменная будет хранить «мусор».

Естественно к мусору мы ничего прибавить не можем. Некоторые компиляторы, такие как gcc, инициализирует переменную нулем при ее объявлении.

Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do. while. Синтаксис цикла while в C++ выглядит следующим образом.

while (Условие)

Данный цикл будет выполняться, пока условие, указанное в круглых скобках является истиной. Решим ту же задачу с помощью цикла while. Хотя здесь мы точно знаем, сколько итераций должен выполнить цикл, очень часто бывают ситуации, когда это значение неизвестно.

Ниже приведен исходный код программы, считающей сумму всех целых чисел от 1 до 1000.

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

Циклы for, while и do-while в С++ для новичков: 6-я часть гайда по языку программирования

Разбираемся, как сократить повторяющийся код в C++ и сэкономить время.

Евгений Кучерявый

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Это шестая часть из серии статей «Глубокое погружение в C++». В прошлый раз мы узнали, как использовать функции и процедуры. Сейчас поговорим о циклах while, do-while и for.

Циклы — это разновидность условных конструкций. Они позволяют выполнять команды несколько раз, если определённое утверждение верно. Например, с помощью циклов можно пять раз вывести на экран какую-нибудь надпись или посчитать сумму всех чисел.

Цикл while в C++

Запись цикла while выглядит так:

Этот код выполняется следующим образом:

  1. Программа проверяет, верно ли утверждение.
  2. Выполняются инструкции в теле цикла.
  3. Программа возвращается к пункту 1.

То есть пока утверждение верно (i < 100),цикл будет повторять одни и те же действия. Цикл, который пять раз выводит сообщение «Hello, World!»:

Обратите внимание на переменную i — она играет роль счётчика, к которому в каждом шаге цикла прибавляется единица. Это нужно, чтобы инструкции выполнялись только определённое количество раз.

Один шаг цикла называется итерацией, а счётчик — итератором. Поэтому чаще всего для счётчика создаётся переменная i.

Важно! Следите за тем, чтобы выход из цикла был возможен, иначе он будет выполняться бесконечно.

Если внутри цикла складываются числа или что-то выводится, то нагрузка будет минимальной. Если же это какие-то ресурсозатратные вычисления, то выполнение такого цикла может заставить компьютер зависнуть.

Когда нам нужно вмешаться в работу цикла, мы используем операторы break и continue.

Оператор break

Оператор break прерывает выполнение цикла:

Компилятор умеет отличать оператор break в конструкции switch от оператора break, который прерывает циклы. Поэтому можно спокойно писать вот такой код:

Важно! Оператор break внутри конструкции switch не может прервать цикл.

Оператор continue

Иногда нам нужно пропустить одну итерацию и перейти к следующей. Для этого используем оператор continue.

Цикл do-while в C++

Цикл do-while похож на while, но он сначала выполняет одну итерацию и только потом проверяет верность утверждения:

Цикл for в C++

Если для работы цикла нужен счётчик, то его запись можно сократить с помощью цикла for, записав логику в скобки:

Вот пример такого цикла:

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

Циклы, как и другие конструкции, можно размещать внутри других циклов. Вот, например, как вывести сетку с помощью for:

Важно! Операторы break и continue влияют на тот цикл, в котором они находятся, а не на родительский.

Заключение

Циклы — одни из самых часто используемых конструкций в программировании. Они нужны при чтении данных из файлов, сортировке, отрисовке графики и так далее. Одно из самых полезных применений циклов связано с массивами, о работе с которыми будет отдельная статья.

Читайте также:

  • ООП умерло? Да здравствует ООП!
  • Чужой код: краткий ликбез по использованию
  • Язык программирования R: ничего лишнего, только работа с данными

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *