Как зациклить программу си

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

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

22 Цикл while. Инструкции break, continue, else

Самый часто используемый цикл — это цикл for , его структура показана ниже:

for ( /*инициализация переменной; условие; изменение значения переменной*/ ) < // тело цикла (тут находится код который будет повторяться) >

Инициализация переменной позволяет либо объявить переменную и присвоить ей значение либо присвоить значение уже существующей переменной. Во-вторых, значение этой переменной сообщает программе — истинно или ложно условие цикла.

И пока условие цикла — истинно, цикл должен продолжать повторяться. Управляющую переменную обязательно необходимо как-то изменять, иначе цикл будет бесконечный, например можно обновлять её так: i++ , i = i + 2 или даже так i = random(5) . Обратите внимание, что каждую секцию в заголовке цикла, отделяет точка с запятой , что очень важно. Также отметим, что каждый из разделов может быть пустым, хотя точки с запятой все еще должны быть там. Если условие не пустое, то оно оценивается как истинное и цикл будет выполняться до тех пор, пока что-то не сделает условие цикла — ложным. Давайте рассмотрим простой пример использования цикла for .

#include int main() < int i; /* Цикл будет работать до тех пор, пока i < 10, при этом после каждой итерации переменная i будет инкрементироваться(увеличиваться на 1)*/ for ( i = 0; i < 10; i++ ) < /* Имейте ввиду что условие проверяется перед каждым повторением, то есть работа цикла остановится когда переменная i будет равна 10*/ printf( «%dn», i ); >getchar(); >

Собственно, результат работы программы:

CppStudio.com

0 1 2 3 4 5 6 7 8 9

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

Python-джедай #7 — Циклы

Цикл while — очень простой цикл, вот его структура:

while ( /*условие*/ ) < // тело цикл — тут находится код, который необходимо повторять >

Тело цикла начинает выполняться, если условие цикла — истинно. Условие представляет собой логическое выражение, например х == 1 или х! = 7 (х не равно 7). То есть условие может быть абсолютно любым — любое сочетание логических выражений.

Вот пример составного условия — x == 3 || x > 10 , это условие будет истинным, если икс будет равен трем или икс будет больше 10. Обратите внимание, что while имеет раздела инициализации или раздела изменения управляемой переменной, поэтому перед использованием этого цикла, сначала необходимо объявить переменную, которая будет проверяться в условии цикла и в теле цикла изменять значение этой переменной. Собственно, давайте рассмотрим простой пример с использованием цикла while:

Читайте также:
Программа экспресс в мультиварке редмонд сколько времени готовить гречку

#include int main() < int var = 0; /* обязательно сначала объявляем переменную */ while ( var < 10 ) < /* пока значение переменной var меньше 10 */ printf( «%dn», var ); var++; /* обновляем значение в переменной var(если этого не делать, то условие цикла всегда будет истинным, тогда цикл будет — бесконечным) */ >getchar(); >

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

Есть еще один тип циклов — do while . Этот цикл полезен, когда необходимо выполнить код по крайней мере — 1 раз. Рассмотрим его структуру:

do < // тело цикла >while ( /*условие*/ );

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

Если условие истинно, цикл прыгает обратно в начало и снова выполняет его. Цикл do while почти ничем не отличается от цикла while , за исключением того, что тело цикла гарантированно выполняется хотя бы один раз. Цикл while сначала проверяет условие, а потом выполняет блок кода в теле, конечно же, если условие — истинно, В то время как do while сначала выполняет код в теле цикла, а затем проверяет условие, и если оно — истинное, то он продолжает работать. Пример работы цикла do while показан ниже:

#include int main() < int i = 0; do < /* Напечатает сообщение и завершит работу*/ printf( «Привет! Я цикл do whilen» ); >while ( i != 0 ); getchar(); >

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

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

Операторы break и continue

Эти два ключевых слова очень важны для циклов, они могут управлять повторениями в цикле. Оператор break делает принудительный выход из цикла, даже когда условие цикла — истинно. Оператор break удобно использовать, когда необходимо выйти из цикла при особых обстоятельствах. Оператор continue нужен если необходимо пропустить какой-то блок кода, но при этом не прекращать работу цикла. Подробно об операторах вы можете прочитать в разделе С++: статья про оператор continue, статья про оператор break.

Источник: cppstudio.com

Циклы в Си.

На этом уроке мы познакомимся с циклическими алгоритмами и циклом For в си. Когда нужно выполнить определенные набор команд несколько раз, в Си используются циклы
Когда известно число повторений используется в Си оператор for
for (присваиваем счетчику начальное значение; условие на счетчик; оператор изменения счетчика )
// набор команд, который будет повторяться
>

Читайте также:
Как пользоваться программой paint tool sai 2

Цикл for в си будет выполняться до тех пор, пока будет выполняться условие на счетчик.
Часто используется оператор изменения счетчика переменная счётчика ++, он увеличивает переменную счетчика цикла на 1.
Переменная, отвечающая за счетчик цикла, часто называется просто переменной цикла.Ее можно использовать внутри цикла.
Пример программы 9 Программа на си выводит числа от 1 до 20
#include
#include
main()
int i;
for (i=1; i printf («%d «, i);// выводим переменную цикла
>
getch();
>
Вложенные циклы в Си.
В Си один цикл for можно вставлять в другой цикл for.
for (счетчик внешнего цикла; условие на счетчик внешнего цикла; изменение счетчика внешнего цикла)
// внутренний цикл
for (счетчик внутреннего цикла; условие на счетчик внутреннего цикла; изменение счетчика внутреннего цикла)
// набор команд, который будет повторяться
>
>
Пример программы 10. Запрашивается ширина и высота прямоугольника , рисуется прямоугольник заданных размеров с помощью символа *.
В этой программе внешний цикл используется для того чтобы выводились все строки, для отображения каждой строки используется внутренний цикл.
// рисуем прямоугольник из *

#include
#include
int main()
int i,j;// счетчики циклов
int a, b; // размеры прямоугольника
// задаем размеры прямоугольника
printf(«Введите ширинуn «);
scanf(«%d»,
printf(«Введите высоту n»);
scanf(«%d»,
// внешний цикл пробегаем по всем строкам
for (i=1; i // внутренний цикл для каждой строки
for (j=1; j printf («*»);// отображаем * в одну строку
>
// переход на следующую строку
printf(«n»);
>
getch();
>

Рисование из звездочек треугольника. В программе запрашивается сторона треугольника и рисуется из звездочек равнобедренный прямоугольный треугольник. Чтобы построить треугольник, длина строки должна увеличиваться, для этого во вложенном цикле for граница должна равняться переменной первого цикла

// рисуем треугольник из *
#include
#include
int main()
int i,j;// счетчики циклов
int a, b; // размеры прямоугольника
// задаем размеры прямоугольника
printf(«Введите сторону треугольникаn»);
scanf(«%d»,

// внешний цикл пробегаем по всем строкам
for (i=1; i // внутренний цикл для каждой строки
for (j=1; j printf («*»);// отображаем * в одну строку
>
// переход на следующую строку
printf(«n»);
>
getch();
>

Вернуться к содержанию Перейти к следующему уроку Цикл с условием в Си

Источник: itrobo.ru

Как зациклить программу си

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

Цикл for

Цикл for имеет следующее формальное определение:

for (инициализация; условие; приращение;) < // тело цикла >

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

Вторая часть — условие , при соблюдении которого выполняется цикл. Зачастую в качестве условия используется операция сравнения, и если она возвращает ненулевое значение (то есть условие истинно), то выполняется тело цикла, а затем вычисляется выражение_3 .

Третья часть — приращение задает изменение параметров цикла. Обычно здесь происходит увеличение счетчиков цикла.

Рассмотрим стандартный цикл for и для этого выведем числа с 0 до 5 на консоль:

#include int main(void) < for (int i = 0; i < 6; i++) < printf(«%d», i); >return 0; >

Первая часть объявления цикла — int i = 0 — создает и инициализирует счетчик i. Счетчик необязательно должен представлять тип int. Это может быть и другой числовой тип, например, float. И перед выполнением цикла его значение будет равно 0. В данном случае это то же самое, что и объявление переменной.

Вторая часть — условие, при котором будет выполняться цикл. В данном случае цикл будет выполняться, пока i не достигнет 6.

Читайте также:
Анидеск как пользоваться программой

И третья часть — приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: i—. Можно изменять на другое значение: i+=2.

В итоге блок цикла сработает 6 раз, пока значение i не станет равным 6. И каждый раз это значение будет увеличиваться на 1.

012345

Каждый отдельный проход цикла называется итерацией. То есть в примере выше было 6 итераций.

Усложним цикл и выведем квадраты чисел от 0 до 8:

#include int main(void) < for (int i = 0; i < 9; i++) < printf(«%d * %d = %d n», i, i, i * i); >return 0; >

Здесь блок цикла сработает 9 раз, пока значение i не станет равным 9. И каждый раз это значение будет увеличиваться на 1.

0 * 0 = 0 1 * 1 = 1 2 * 2 = 4 3 * 3 = 9 4 * 4 = 16 5 * 5 = 25 6 * 6 = 36 7 * 7 = 49 8 * 8 = 64

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

int i = 1; for ( ; i

Формально определение цикла осталось тем же, только теперь первое и третье выражения в определении цикла отсутствуют: for (; i < 9;) . Переменная-счетчик определена и инициализирована вне цикла, а ее приращение происходит в самом цикле.

Можно определять вложенные циклы. Например, выведем таблицу умножения:

#include int main(void) < for (int i=1; i < 10; i++) < for(int j = 1; j < 10; j++) < printf(«%d t», i * j); >printf(«n»); > return 0; >

Цикл do..while

В цикле do..while сначала выполняется код цикла, а потом происходит проверка условия в инструкции while . И пока это условие истинно, то есть не равно 0, то цикл повторяется.

do < // действия цикла >while (условие);
#include int main(void) < int i = 6; do < printf(«%d», i); i—; >while (i > 0); return 0; >

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

int i = -1; do < printf(«%d», i); i—; >while (i > 0);

Хотя у нас переменная i меньше 0, цикл все равно один раз выполнится.

Цикл while

В отличие от цикла do цикл while сразу проверяет истинность некоторого условия, и если условие истинно, то есть не равно 0, то код цикла выполняется:

while(условие) < // выполняемые инструкции, если условие истинно >

Например, выведем на консоль все числа от 6 до 1:

#include int main(void) < int i = 6; while (i >0) < printf(«%d n», i); i—; >return 0; >

Здесь, пока истинно условие i > 0 , будут выполняться действия цикла — printf(«%d n», i) и i—

Операторы continue и break

Иногда возникает необходимость выйти из цикла до его завершения. В этом случае можно воспользоваться оператором break . Например:

int i = 1; for ( ; ; ) < printf(«%d * %d = %d n», i, i, i * i); i++; if (i >5) break; >

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

В отличие от оператора break , оператор continue производит переход к следующей итерации. Например, нам надо посчитать сумму только нечетных чисел из некоторого диапазона:

#include int main(void) < int result = 0; for (int i=0; iprintf(«result = %d», result); // 25 return 0; >

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

Источник: metanit.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru