Цикл While С++ для Начинающих

В языке C++ существуют разные виды циклов. Кроме for-цикла, имеется while-цикл.
  • while-цикл удобно использовать тогда, когда нет чёткого начала, но есть признак прекращения выполнения повторений.
Например, пользователь жмёт кнопки клавиатуры, какая будет первая нажатая клавиша — неизвестно; числа выбираются случайным образом, каким будет первое — неизвестно; иногда неизвестно сколько именно повторений придётся сделать. Ситуаций, в которых начало отсчёта туманно, хватает. В таких ситуациях бывает удобно использовать while-цикл. Не во всех, правда, он достаточно удобен, но достаточно во многих ситуациях. Суть while-цикла достаточно проста: до тех пор, пока некоторая переменная не выйдет из заданного условия, будут происходить повторения. Условие задаётся внутри круглых скобок:

Конструкция цикла-while достаточно простая:

Пока наша переменная согласуется с условием, указанным внутри круглых скобок, всё, что указано внутри фигурных скобок, будет повторяться. Чтобы не происходило бесконечного повторения, нужно внимательно следить за изменением рулящей циклом while переменной.
  • цикл-while можно назвать переменнозависимым, в то время, как цикл-for можно назвать самоуправцем. На самом деле эти циклы взаимозаменяемы, и мои слова не совсем соответствуют действительности, но, полагаю, так вам будет проще понять.
Одна из наиболее типичных для новичков ошибок — забыть изменять переменную для цикла while.
Любые круглые скобки в C++ обозначают или уход аргументов, или приём параметров. Цикл for принимал три параметра, разделяемых точкой с запятой, а цикл while принимает только один параметр, этот параметр может быть пустым, но при пустом параметре повторения могут происходить бесконечно. Что нужно повторять — указывается внутри фигурных скобок, сами фигурные скобки можно опускать при единичном выражении, но, лучше их использовать. До тех пор, пока значение переменной согласуется с определённым в круглых скобках условиях, код в фигурных скобках повторяется.
Для примера будет использован генератор случайных значений: до тех пор, пока в случайное значение не попадёт число 100, на экран будут выводится выпавшие числа.

При каждом новом запуске программы количество чисел будет различаться, также будут различаться и сами числа. Вы можете попробовать обернуть всё это дело дополнительным циклом, чтобы программа не завершалась сразу.
while достаточно просто использовать, но обязательно запомните, что при написании условий в языке C++ операция проверки на равенство вот такая: ==. Начинающими характерно использовать операцию присвоения: =.
В некоторых старых компиляторах ошибка в написании цикла, ведущая к бесконечному выполнению программы, может оказатьс критичной: не всегда известно, как прекратить выполнение программы принудительно, поэтому перед запуском очередной своей попытки, сохраняйте написанный вами код. Переписывать может быть очень трудозатратно.
цикл-while имеет несколько форм:
  • Форма do…while
В форме do…while признак прекращения повторений описывается снизу. Сама эта форма используется тогда, когда тело цикла, т. е. то, что внутри фигурных скобок, кровь из носу надо выполнить минимум один раз.

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

Понять не очень сложно: если сначала идёт тело цикла, а название цикла следует после тела, то тело цикла компилятором воспринимается как обычный блок кода; а потом компилятор видит, что вообще-то цикл, и начинает его крутить. Если компилятор видит название цикла до тела цикла, то сразу начинает крутить этот цикл. Т. е. цикл начинает крутиться только тогда, когда компилятор увидит название цикла.
Посмотрите на работу обоих вариантов, обдумайте, останется только привыкнуть.
Вы часто будете всречать разные способы обработки счётчиков циклов: уменьшение или увеличение. У начинающих программистов всегда возникает вопрос различия i++ и ++i (i и —i).
На настоящей стадии обучения объяснить вам разницу сложно. Всё, что я могу, процитировать замечательного автора, пишущего учебники по C++ и другим языкам программирования.
Из учебника Прата А. С. об этом различии: "Для встроенных типов данных разницы нет, но для типов, определенных пользователем, оснащенных операциями инкремента и декремента, префиксная форма более эффективна.".
Инкремент
Декремент

Префиксная форма
++i
i

Постфиксная форма
i++
i

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

2 комментария: Цикл While С++ для Начинающих

  • Яна говорит:

    скажите пожалуйста что не правильно??

    • admin говорит:

      Я не знаю, что неправильно не зная задачи.
      Я вижу, что вы выводите неопределенную переменную на экран и только потом считываете ее с клавиатуры. Надо сначала определить переменную и только потом выводить на экран.

      И в цикле while xn и xk никогда не меняются, а должны меняться по идее.

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

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

- У меня компьютер сам выключается... че делать? - У тебя системник внизу стоит? - Да. - Поменяй носки... он сознание теряет.

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок