Как остановить цикл for в c
Циклы позволяет выполнить одно действие множество раз в зависимости от определенного условия. В языке Си есть следующие типы циклов:
Цикл for
Цикл for имеет следующее формальное определение:
заголовок цикла состоит из трех частей. Первая часть — инициализация выполняется один раз при начале выполнения цикла и представляет установку начальных условий, как правило, это инициализация счетчиков — специальных переменных, которые используются для контроля за циклом.
Вторая часть — условие , при соблюдении которого выполняется цикл. Зачастую в качестве условия используется операция сравнения, и если она возвращает ненулевое значение (то есть условие истинно), то выполняется тело цикла, а затем вычисляется выражение_3 .
Третья часть — приращение задает изменение параметров цикла. Обычно здесь происходит увеличение счетчиков цикла.
Рассмотрим стандартный цикл for и для этого выведем числа с 0 до 5 на консоль:
Первая часть объявления цикла — int i = 0 — создает и инициализирует счетчик i. Счетчик необязательно должен представлять тип int. Это может быть и другой числовой тип, например, float. И перед выполнением цикла его значение будет равно 0. В данном случае это то же самое, что и объявление переменной.
Вторая часть — условие, при котором будет выполняться цикл. В данном случае цикл будет выполняться, пока i не достигнет 6.
И третья часть — приращение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: i—. Можно изменять на другое значение: i+=2.
В итоге блок цикла сработает 6 раз, пока значение i не станет равным 6. И каждый раз это значение будет увеличиваться на 1.
Каждый отдельный проход цикла называется итерацией. То есть в примере выше было 6 итераций.
Усложним цикл и выведем квадраты чисел от 0 до 8:
Здесь блок цикла сработает 9 раз, пока значение i не станет равным 9. И каждый раз это значение будет увеличиваться на 1.
Необязательно указывать все три выражения в определении цикла, мы можем одно или даже все их них опустить:
Формально определение цикла осталось тем же, только теперь первое и третье выражения в определении цикла отсутствуют: for (; i < 9;) . Переменная-счетчик определена и инициализирована вне цикла, а ее приращение происходит в самом цикле.
Можно определять вложенные циклы. Например, выведем таблицу умножения:
Цикл do..while
В цикле do..while сначала выполняется код цикла, а потом происходит проверка условия в инструкции while . И пока это условие истинно, то есть не равно 0, то цикл повторяется.
Здесь код цикла сработает 6 раз, пока i не станет равным нулю. Но важно отметить, что цикл do гарантирует хотя бы единократное выполнение действий, даже если перед первым выполнением условие в инструкции while не будет истинно. То есть мы можем написать:
Хотя у нас переменная i меньше 0, цикл все равно один раз выполнится.
Цикл while
В отличие от цикла do цикл while сразу проверяет истинность некоторого условия, и если условие истинно, то есть не равно 0, то код цикла выполняется:
Например, выведем на консоль все числа от 6 до 1:
Здесь, пока истинно условие i > 0 , будут выполняться действия цикла — printf(«%d \n», i) и i—
Операторы continue и break
Иногда возникает необходимость выйти из цикла до его завершения. В этом случае можно воспользоваться оператором break . Например:
Здесь когда значение переменной i достигнет 5, осуществляется выход из цикла с помощью оператора break .
В отличие от оператора break , оператор continue производит переход к следующей итерации. Например, нам надо посчитать сумму только нечетных чисел из некоторого диапазона:
Чтобы узнать, четное ли число, мы получаем остаток от целочисленного деления на 2, и если он равен 0, то с помощью оператора continue переходим к следующей итерации цикла. А если число нечетное, то складываем его с остальными нечетными числами.
C++. Операторы break и continue. Особенности применения. Примеры использования
Операторы break и continue . Особенности применения. Примеры использования
Содержание
- 1. Особенности применения оператора break
- 2. Особенности применения оператора continue
- 3. Оператор break . Примеры решения задач с использованием циклов
- 3.1. Вычисление суммы чисел, введенных с клавиатуры. Цикл for
- 3.2. Вычисление значения числа π по формуле
- 4.1. Вычисление суммы элементов последовательности
- 4.2. Вычисление суммы элементов массива в соответствии с условием
Поиск на других ресурсах:
1. Особенности применения оператора break
В языке C++ существуют операторы break и continue , которые используются для управления ходом выполнения циклического процесса. Эти операторы могут быть применены только в теле цикла.
Оператор break предназначен для искусственного прерывания выполнения:
- последовательности итераций в операторах цикла for , while или do-while ;
- последовательности операторов в операторе выбора switch .
Чаще всего оператор break используется в сочетании с оператором условия if . В этом случае, происходит проверка некоторого условия, и в случае успеха вызывается оператор break .
Пример. В нижеследующем примере при достижении переменной i значения 3 происходит безусловный выход из цикла путем вызова оператора break . Продемонстрирован вызов break для всех видов операторов.
Результат выполнения программы
2. Особенности применения оператора continue
Оператор continue предназначен для перехода к выполнению следующей итерации цикла. Если в теле цикла встречается оператор continue , то:
- выполнение текущей итерации останавливается;
- происходит переход к следующей итерации цикла.
Оператор continue может быть применен во всех видах циклов: for , while , do-while .
В большинстве случаев вызов оператора continue осуществляется при выполнении некоторого условия в операторе if .
Пример. В примере демонстрируется использование оператора continue для всех видов циклов C++. В задаче, при достижении переменной i значения 3 происходит переход к следующей итерации с помощью инструкции continue .
Результат работы программы
3. Оператор break . Примеры решения задач с использованием циклов
3.1. Вычисление суммы чисел, введенных с клавиатуры. Цикл for
Пользователь вводит числа с клавиатуры. Окончание ввода – число 0. Вычислить сумму чисел, которые введет пользователь. В программе использовать операторы for и break .
Решение задачи на языке C++ следующее
Если попробовать вызвать оператор continue в конструкции if , то компилятор сгенерирует ошибку со следующим сообщением
Операторы break и continue в C++

Оператор break в C++
С оператором break вы уже встречались, если читали наши статьи об операторе switch и о цикле for. И наверняка уже имеете представление о том, как он работает. Поговорим еще немного об этом операторе, возможно кому-то будет полезно.
Достаточно часто при использовании циклов и почти всегда при использовании оператора switch , программисту необходимо прервать выполнение тела цикла или тела switch соответственно. break , как раз используется в таких случаях.
Так же, с помощью этого оператора прерывается бесконечный цикл. Когда его нужно прервать, в тело цикла добавляется условие, при выполнении которого сработает оператор break , а цикл завершит работу. В следующем примере, реализована простая игра: один игрок загадывает число от 1 до 7, второй должен отгадать его.
Чтобы всё было честно и игрок, который загадывает, не мог ввести число из недопустимого диапазона, запускаем бесконечный цикл в котором и происходят ввод и проверка числа. Если число соответствует необходимому диапазону – цикл прерывается (строки 15 – 18), если же нет – на экране появляется предупреждение и предложение ввести число снова. Так будет происходить, пока введенное число не войдет в нужный диапазон.
После ввода корректного числа, в строке 25 вызываем специальную функцию system(“cls”); , которая очистит содержимое экрана, перед тем, как второй игрок приступит к отгадыванию числа (сработает только в windows).
Далее определяем второй бесконечный цикл (строки 29 – 47), но уже со счетчиком myTry . Он будет считать количество попыток игрока отгадать число. Игрок вводит число и оно сразу проверяется на соответствие диапазону в строках 33 – 37.
Если не соответствует – предупреждаем и отнимаем единицу от счетчика попыток myTry . Иначе если число в нужный диапазон вошло, проверяем соответствует ли оно загаданному числу (строки 38 – 42): да – поздравляем и прерываем цикл, нет – переходим к выполнению строк 43 – 46 – говорим об ошибке и предлагаем ввести число снова.


Оператор continue в C++
Этот оператор применяется тогда, когда необходимо прервать (пропустить) текущую итерацию цикла и приступить к следующей итерации. При его выполнении в цикле for происходит остановка текущей итерации, переход к изменению управляющей переменной, а затем проверка условия продолжения выполнения цикла.
Решим такую задачу: Необходимо вывести на экран те числа, которые делятся на 7 без остатка и находятся в диапазоне от 1 до 70 .
Циклы C#: создание и управление циклами, циклы с пред и постусловиями
Циклы — это конструкции языка программирования, которые позволяют выполнять определенный блок кода до тех пор, пока выполняется определенное условие. В C# существуют четыре вида циклов — for , foreach , while и do while . Например, трудно себе представить програму, которая ищет все простые числа от 0 до 9999 и, при этом не использует в своей работе циклы. Рассмотрим какие бывают и как работают эти циклы в C#.
Цикл for
Конструкция цикла for следующая:
- инициализация — начальное значение счётчика;
- условие — пока условие выдает true цикл будет выполняться;
- порядок выполнения — команда, которая должна наращивать счётчик.
Раз уж речь в начале зашла про простые числа, то и рассмотрим пример их поиска с использованием циклов. С использованием цикла for поиск простого числа можно организовать, например вот так:
Рассмотрим основные моменты нашей программы. Начнем с метода IsPrime() — именно в нем происходит проверка числа с использованием цикла for . Этот метод в качестве аргумента принимает целое число, а результатом является логический тип bool : true , если число является простым и false — в противоположном случае. Внутри цикла мы проверяем остаток от деления числа на значение счётчика. Чтобы было понятно, как будет работать наша программа с циклом, распишем все действия метода по шагам, на примере числа 5:
- Шаг 1: инициализируем переменную счётчика, присвоив i значение 2.
- Шаг 2: проверяем истинность условия выхода ( i<5 ) — если условие истинно, значит выполняем действие
- Шаг 3: проверяем остаток от деления 5 на текущее значение счётчика. Остаток больше нуля, поэтому условие if не выполняется и программа попробует перейти к следующему шагу цикла. Если условие if выполняется, то срабатывает оператор return, который возвращает нас из метода IsPrime() в основную программу с результатом метода равным true .
- Шаг 4: наращиваем счётчик на 1 (выражение i++ в цикле).
- Возвращаемся на шаг 2. Если i больше заданного числа, то выходим из цикла и функция вернет true так как все возможные значения делителей были просмотрены и при всех значениях остаток от деления был больше нуля. Если же условие выхода из цикла не выполняется, то переходим на шаг 3.
Таким образом, для числа 5 наш цикл будет состоять из трех итераций ( i = 1, 2, 3 ), а так как 5 — это простое число, то мы дойдем до оператора return в последней строке метода. Вот так работает цикл и сам метод IsPrime() .
Теперь посмотрим вот эту строку в методе Main() :
Здесь мы воспользовались нашим методом, а также тернарной операцией для вывода итогов проверки числа. Таким образом, всего в одной простенькой программке мы смогли применить практически все, что узнали о C# до этого момента: посмотрели как работает цикл for , в цикле использовали арифметический оператор — остаток от деления в логической операции if и, в заключении, использовали тернарную операцию для вывода результата в консоль.
Возвращаясь к теме цикла for так же стоит отметить следующую его особенность инициализация ; условие; порядок выполнения могут отсутствовать и добавляются по желанию.
Например, в C# можно создать бесконечный цикл for :
Есть и другие особенности этого цикла, например, использование запятых в инициализации и порядке выполнения , но это всё уже тонкости программирования, которые нам пока не потребуются для дальнейшего изучения языка C#.
Цикл while
Конструкция цикла while :
Цикл while выполняется до тех пор пока условие возвращает истину ( true ).
Вернемся к нашим простым числам. Например, нам необходимо найти все простые числа в заданном диапазоне. Конечно, мы бы могли без проблем воспользоваться тем же самым циклом for , но для разнообразия рассмотрим пример с использованием while :
Наш цикл while будет выполняться до тех пор, пока значение i не станет больше переменной max . То есть, в примере — это значение 4000 .
Цикл do…while
Конструкция цикла do..while :
Думаю, не стоит повторять, что значит условие или действие в описании конструкции цикла. Стоит лишь только добавить, что этот цикл выполниться хотя бы один раз минимум, тогда как предыдущий цикл while может не выполниться не разу, если будет задано заведомо ложное условие.
Цикл foreach
Конструкция цикла foreach :
Здесь стоит кое-что пояснить. В описании конструкции цикла грамматической ошибки нет, то есть в цикле используется тип данных переменной, и переменная через которую мы будем получать доступ к очередному значению в наборе данных. При этом, в качестве набора данных могут выступать массивы, списки и так далее. Забегая немного вперед, покажу как воспользоваться циклом foreach для поиска простых чисел в массиве:
Как видите, в цикле мы указали тип данных (целое число int ), переменную ( value ) и набор данных — массив с именем array . Цикл foreach последовательно перебирает все элементы массива и выводит результат проверки в консоль.
Управление циклами в C#
Управлять циклами в C# возможно с использованием двух операторов перехода:
- continue — прерывает текущую итерацию цикла и переходит к следующей;
- break — полностью прерывает выполнение цикла.
Пример с continue
Чтобы далеко не ходить, за основу для примера возьмем предыдущий цикл foreach . Пусть теперь наша программа пропускает все числа в массиве, которые больше 100 . С помощью оператора continue сделать это довольно просто:
Теперь, если запустить приложение, то в консоли появится результат проверки только для чисел до 100 включительно, то есть:
1, 3, 7, 9, 12, 76, 56, 89, 11 .Пример с break
Как было сказано выше, оператор break полностью прерывает выполнение цикла. Так, если в предыдущем примере мы отсеивали все числа больше 100 , то в этом примере цикл прервется как только встретит число более 100 :
Не трудно догадаться, что последним числом, которое будет проверено в цикле будет число 12 , так как следующее число в массиве 134 (больше 100 ).
Итого
Итак, сегодня мы разобрались с циклами в C#, посмотрели как они работают на примере поиска простых чисел, а также научились управлять циклами в нашем приложении с помощью операторов continue и break. При этом, я постарался сделать так, чтобы в примерах было задействовано максимальное количество конструкций и операторов, которые мы изучили ранее.