Что такое while int

Что такое while int

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

Каждый цикл состоит из

  • блока проверки условия повторения цикла
  • тела цикла

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

В языке Си следующие виды циклов:

  • while — цикл с предусловием;
  • do…while — цикл с постусловием;
  • for — параметрический цикл (цикл с заданным числом повторений).

Цикл с предусловием while

Общая форма записи

Если Условие выполняется (выражение, проверяющее Условие , не равно нулю), то выполняется БлокОпераций , заключенный в фигурные скобки, затем Условие проверяется снова.
Последовательность действий, состоящая из проверки Условия и выполнения БлокаОпераций , повторяется до тех пор, пока выражение, проверяющее Условие , не станет ложным (равным нулю). При этом происходит выход из цикла, и производится выполнение операции, стоящей после оператора цикла.

Пример на Си : Посчитать сумму чисел от 1 до введенного k

Результат выполнения

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

Пример бесконечного цикла

while — цикл с предусловием, поэтому вполне возможно, что тело цикла не будет выполнено ни разу если в момент первой проверки проверяемое условие окажется ложным.

Например, если в приведенном выше коде программы ввести k=-1, то получим результат

Цикл с постусловием do. while

Общая форма записи

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

Использовать цикл do. while лучше в тех случаях, когда должна быть выполнена хотя бы одна итерация, либо когда инициализация объектов, участвующих в проверке условия, происходит внутри тела цикла.

Пример на Си . Проверка, что пользователь ввел число от 0 до 10

Результат выполнения:

Параметрический цикл for

Общая форма записи

for — параметрический цикл (цикл с фиксированным числом повторений). Для организации такого цикла необходимо осуществить три операции:

  • Инициализация — присваивание параметру цикла начального значения;
  • Условие — проверка условия повторения цикла, чаще всего — сравнение величины параметра с некоторым граничным значением;
  • Модификация — изменение значения параметра для следующего прохождения тела цикла.

Эти три операции записываются в скобках и разделяются точкой с запятой ; ;. Как правило, параметром цикла является целочисленная переменная.
Инициализация параметра осуществляется только один раз — когда цикл for начинает выполняться.
Проверка Условия повторения цикла осуществляется перед каждым возможным выполнением тела цикла. Когда выражение, проверяющее Условие становится ложным (равным нулю), цикл завершается. Модификация параметра осуществляется в конце каждого выполнения тела цикла. Параметр может как увеличиваться, так и уменьшаться.

Пример на Си : Посчитать сумму чисел от 1 до введенного k

Результат выполнения

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

Параметры, находящиеся в выражениях в заголовке цикла можно изменить при выполнении операции в теле цикла, например

#define _CRT_SECURE_NO_WARNINGS // для возможности использования scanf
#include
int main() <
int k; // объявляем целую переменную key
int sum = 0; // начальное значение суммы равно 0
printf( "k = " );
scanf( "%d" , &k); // вводим значение переменной k
for ( int i=1; i // цикл для переменной i от 1 до k с шагом 1
<
sum = sum + i; // добавляем значение i к сумме
i++; // добавляем 1 к значению i

Читайте также:  Как переустановить виндовс на нетбук с флешки

>
printf( "sum = %d
" , sum); // вывод значения суммы
getchar(); getchar();
return 0;
>

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

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

В Си допускаются вложенные циклы, то есть когда один цикл находится внутри другого:

Пример : Вывести числа от 0 до 99, по 10 в каждой строке

Результат выполнения

Рекомендации по выбору цикла

При выборе цикла необходимо оценить необходимость проверки условия при входе в цикл или по завершении прохождения цикла.
Цикл с постусловием удобно применять в случаях, когда для проверки условия требуется вычислить значение выражения, которое затем будет размещено в теле цикла (см. выше пример ввода числа от 0 до 10).
Цикл c предусловием используется в случае если все переменные, участвующие в выражении, проверяющем условие, проинициализированы заранее, но точное число повторений цикла неизвестно или предполагается сложная модификация переменных, участвующих в формировании условия повторения цикла.
Если цикл ориентирован на работу с параметром, для которого заранее известно число повторений и шаг изменения, то более предпочтительным является параметрический цикл. Очень удобно использовать параметрический цикл при работе с массивами для перебора элементов.

Операторы прерывания и продолжения цикла break и continue

В теле любого цикла можно использовать операторы прерывания цикла — break и продолжения цикла — continue .

Оператор break позволяет выйти из цикла, не завершая его.
Оператор continue позволяет пропустить часть операторов тела цикла и начать новую итерацию.

Пример на Си : Вывести числа от 0 до 99 ниже главной диагонали

Результат выполнения

Пример на Си : Вывести числа от 0 до 99 исключая числа, оканчивающиеся на 5 или 8

Результат выполнения

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

Оператор безусловного перехода goto

Общая форма записи

Выполнение оператора goto вызывает передачу управления в программе операции, помеченной Меткой . По сути Метка является идентификатором адреса операции, которой должно быть передано управление. Для отделения Метки от Операции используется двоеточие — : .
Метка может располагаться в программе как до оператора goto , так и после него. Имена Меток образуются по тем же правилам, что и имена переменных.

Пример на Си : Вывести все целые числа от 5 до 0.

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

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

Цикл for

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

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

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

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

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

Сначала присваивается первоначальное значение счетчику, после чего ставится точка с запятой.

Затем задается конечное значение счетчика цикла. После того, как значение счетчика достигнет указанного предела, цикл завершится. Снова ставим точку с запятой.

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

Пример кода

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

Если мы скомпилируем этот код и запустим программу, то она покажет нам ответ: 500500. Это и есть сумма всех целых чисел от 1 до 1000. Если считать это вручную, понадобится очень много времени и сил. Цикл выполнил всю рутинную работу за нас.

Читайте также:  Втб привилегия вход в личный кабинет

Заметьте, что конечное значение счетчика я задал нестрогим неравенством ( — меньше либо равно), поскольку, если бы я поставил знак меньше, то цикл произвел бы 999 итераций, т.е. на одну меньше, чем требуется. Это довольно важный момент, т.к. здесь новички часто допускают ошибки, особенно при работе с массивами (о них будет рассказано в следующем уроке). Значение шага цикла я задал равное единице. i++ — это тоже самое, что и i = i + 1.

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

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

Цикл while

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

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

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

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

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

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

Затем мы описываем условие цикла — «пока переменная i меньше 1000 — выполняй цикл». При каждой итерации цикла значение переменной-счетчика i увеличивается на единицу внутри цикла.

Когда выполнится 1000 итераций цикла, счетчик станет равным 999 и следующая итерация уже не выполнится, поскольку 1000 не меньше 1000. Выражение sum += i является укороченной записью sum = sum + i .

После окончания выполнения цикла, выводим сообщение с ответом.

Цикл do while

Цикл do while очень похож на цикл while . Единственное их различие в том, что при выполнении цикла do while один проход цикла будет выполнен независимо от условия. Решение задачи на поиск суммы чисел от 1 до 1000, с применением цикла do while .

Принципиального отличия нет, но если присвоить переменной i значение, большее, чем 1000, то цикл все равно выполнит хотя бы один проход.

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

Мы уже знаем самые основы языка C++. Знаем что такое:

Пришло время начать знакомство с циклами. И сегодня мы познакомимся с первым из них – циклом while.

Что такое цикл?

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

Читайте также:  Как называется в метро куда прикладывают карточки

Представьте. Мы хотим вывести на экран: i love C++ – 5 раз. Вы скажете, нет ничего проще, нам потребуется написать 5 раз:

Точнее мы напишем 1 раз, а остальные 4 возьмем и скопируем. Но правильно ли это? Мы уже неоднократно говорили, что код в программе должен быть минимален (насколько это возможно). И 5 раз копировать одну и ту же строку будет неправильно. Тем более. А если через некоторое время, нам надо будет не 5, а 10 или 20 раз вывести на экран эту строку. Нам каждый раз придется это делать? При данном подходе – да.

А если через некоторое время нам придется изменить «я люблю С++» на «Я люблю С++»? Нам опять придется лезть в код и менять 10 – 20 – 100 строк? Нет.

Мы воспользуемся циклом и скажем ему, мы уже написали «I love C++» один раз, теперь возьми и повтори его столько раз, сколько мы тебе скажем.

Как устроен цикл?

  1. Мы говорим, условие (например, while(a));
  2. Если условие верно, повторяй наше действие;
  3. Если условие неверно, выходи из цикла.

Как выполнить действие необходимое количество раз?

Прежде всего давайте введем в наш лексикон еще одно понятие – итерация.
Итерация – это организация обработки данных, при которой действия повторяются многократно, не приводя при этом к вызовам самих себя.

И теперь нам необходимо задать нашему циклу условие, в котором сказать: «Повторяйся 10 раз». А как нам это сделать при помощи кода?

Очень просто. В условие цикла мы запишем переменную, которая равна какому-то значению. Например, переменная a = 0; И говорим циклу, выполни действие 10 раз. А как это делать, мы уже умеем. Запишем в условие вот такую конструкцию a > 10. И пока переменная a будет меньше 10, цикл будет повторяться.

Такая переменная называется – переменная счетчик. И по традиции I, j или k. I – от слова iteration (итерация). А j и k – просто находятся рядом на клавиатуре, поэтому и прижились.

Задача этой переменной увеличиваться на 1 (в нашем случае) при каждой итерации и подать сигнал в момент перехода из true в false.

Бесконечный цикл

Посмотрите на картинку. Мы сделали условие I I = I + 1;

Какие бывают циклы?

Циклы делятся на 2 группы:

  1. С предусловием – while и for (сначала проверь условие, затем повтори);
  2. С постусловием – do while (сначала повтори, затем проверь условие).

Синтаксис цикла while

Синтаксис цикла while очень прост:

Если вы обратите внимание, то он напоминает нам неполную форму условного оператора. За единственным исключением ключевого слово. Раньше мы писали if, а здесь мы будем писать while. While в переводе с английского – пока. То есть, пока условие верно, повторяй эти действия.

Тело цикла

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

Вернемся к нашему примеру с любовью к языку C++. И вот так это будет выглядеть при помощи цикла while.

Решение задач

Найди число

Дано число n. Необходимо найти минимальное число, большее n, которое нацело делится на 19.

Формат входных данных
Вводится целое число n (1 30 ).
Формат выходных данных
Требуется вывести искомое число.
Примеры
входные данные
42
13
выходные данные
57
19

Обработка входных данных

На вход программы подается 10 чисел. Выведите в столбик для каждого из них число, равное удвоенному квадрату первоначального числа.

Формат входных данных
В единственной строке через пробел вводятся 10 целых чисел, по модулю не превосходящих 1000.
Формат выходных данных
Необходимо вывести 10 строк, в каждой из которых будет по одному числу — результат преобразования исходных чисел.
Примеры
входные данные
1 10 2 4 2 5 3 6 101 11
выходные данные
2
200
8
32
8
50
18
72
20402
242

Видео по теме урока:

Ссылка на основную публикацию
Что значит код ошибки 805а8011
Многие владельцы смартфонов с операционной системой Windows Phone не могут войти в учетную запись магазина Marketplace. На экране появляется код...
Хочу создать группу в контакте
Приветствую вас, дорогие читатели. Социальные сети уже давно вошли в нашу жизнь, поэтому всем владельцам абсолютно любого бизнеса, как традиционного,...
Хром для андроид тв приставок
Всем привет! Предлагаю очередной раз поднять больную тему браузеров для Android TV. В разделе «вопрос – ответ» уже много раз...
Что значит интегрированный процессор
Здравствуйте, уважаемые пользователи и любители компьютерного железа. Сегодня порассуждаем на тему, что такое интегрированная графика в процессоре, зачем она вообще...
Adblock detector