Добрый день дорогие друзья.
После долгого перерыва,я снова с вами.
Вот его синтаксис:
Работает эта конструкция следующим образом.
1.Сначала проверяется условие в скобках.
1.1 Если оно истинно, то выполняется тело цикла. (Оператор). И программа снова переходит к проверке условия.
Напомню,что тело цикла всегда состоит из одного оператора. И если нам нужно использовать несколько операторов, то как и в случае с конструкцией if-else или циклом for, применяется составной оператор {...}.
1.2 Если условие ложно, то выполнение циклической конструкции заканчивается и программа выполняется дальше.
Заметим, что цикл может не выполниться ни одного раза,если изначально условие будет ложным.
Например:
Листинг 9.2
while (0)
{ ... }
Синтаксис:
как видите цикл do-while состоит из 3 частей. Заголовка цикла, тела цикла и условия.
Работает эта конструкция следующим образом.
1)После того как программа встречает ключевое слово do,она понимает, что имеет дело с циклом do-while.
2)выполняется тело цикла.
3) Проверяется условие.
3.1) Если условие истинно,то снова выполняется тело цикла.
3.2) Если условие ложно, то работа циклической конструкции заканчивается и программа выполняется дальше.
Обратите внимание, что при использовании цикла do-while, тело цикла выполнится всегда хотя бы один раз! Это очень важная особенность и иногда её очень удобно использовать.
Напоследок напишем одну маленькую программку.С использованием циклов do-while и while.
Пусть требуется написать программу которая принимает на входе положительное натуральное число, а на выходе выдает сумму цифр этого числа. При этом, надо запретить пользователю вводить отрицательные числа. (защита от дурака).
Сначала напишем основную часть программы.
Считаем число и посчитаем сумму его цифр.
Листинг 9.4
//начинаем последовательно получать каждую последнюю цифру числа.
Эта программа работает. Теперь добавим в неё так называемую "защиту от дурка". Чтобы пока не введешь правильные данные,программа не будет работать. Для этого используем цикл do-while.И будем повторить ввести ввод до тех пор, пока не будет введено положительное число.
Получим следующий код.
Листинг9.5
На этом сегодня всё. Домашнего задания к этому уроку не будет. Так как мне надо разобраться с той кучей вопросов, которые накопились за это время в комментариях.
После долгого перерыва,я снова с вами.
Сегодняшнее занятие будет продолжением занятия номер 7.Циклические конструкции
Сегодня поговорим о еще двух циклических конструкциях.
Как уже говорилось ранее,цикл for используется,когда известно сколько раз надо выполнить тело цикла. А что же делать если количество повторений заранее не известно, а есть только условие которое после которого нужно прекратить выполнять цикл. Для этих целей используют циклические конструкции while и do-while. Остановимся на каждом из них поподробнее.
Цикл while.
Цикл while называют еще циклом с предусловием. Чаще всего он используется когда неизвестно конкретно сколько раз нужно выполнить тело цикла.Вот его синтаксис:
Листинг 9.1
while (условие)
оператор;
Работает эта конструкция следующим образом.
1.Сначала проверяется условие в скобках.
1.1 Если оно истинно, то выполняется тело цикла. (Оператор). И программа снова переходит к проверке условия.
Напомню,что тело цикла всегда состоит из одного оператора. И если нам нужно использовать несколько операторов, то как и в случае с конструкцией if-else или циклом for, применяется составной оператор {...}.
1.2 Если условие ложно, то выполнение циклической конструкции заканчивается и программа выполняется дальше.
Заметим, что цикл может не выполниться ни одного раза,если изначально условие будет ложным.
Например:
Листинг 9.2
while (0)
{ ... }
Цикл do-while.
Цикл do-while называют еще циклом с постусловием. И в этом состоит его основное отличие от цикла while. Сейчас мы разберем его синтаксис, поймем как он работает и увидим как раз в чем разница.Синтаксис:
Листинг 9.3
do //заголовок цикла
{ оператор;} // тело цикла
while (условие); //условие
как видите цикл do-while состоит из 3 частей. Заголовка цикла, тела цикла и условия.
Работает эта конструкция следующим образом.
1)После того как программа встречает ключевое слово do,она понимает, что имеет дело с циклом do-while.
2)выполняется тело цикла.
3) Проверяется условие.
3.1) Если условие истинно,то снова выполняется тело цикла.
3.2) Если условие ложно, то работа циклической конструкции заканчивается и программа выполняется дальше.
Обратите внимание, что при использовании цикла do-while, тело цикла выполнится всегда хотя бы один раз! Это очень важная особенность и иногда её очень удобно использовать.
Зацикливание.
Теперь поговорим немного о такой пренеприятнейшей вещи как зацикливание. Зацикливание - это когда программа постоянно выполняет тело цикла и не может из него выйти. Причиной зацикливания всегда является программист. Надо всегда внимательно следить за тем, чтобы работа операторов как-то влияла на условие. Напоследок напишем одну маленькую программку.С использованием циклов do-while и while.
Пусть требуется написать программу которая принимает на входе положительное натуральное число, а на выходе выдает сумму цифр этого числа. При этом, надо запретить пользователю вводить отрицательные числа. (защита от дурака).
Сначала напишем основную часть программы.
Считаем число и посчитаем сумму его цифр.
Листинг 9.4
#include <stdio.h>
int main()
{
int A, sum=0;
printf("Vvedite chislo:");
scanf("%d",&A); //считываем
число
while (A>0)
{
sum=sum+A%10;
A= A/10;
}
printf("summa chifr etogo chisla: %d\n", sum);
return(0);
}
Эта программа работает. Теперь добавим в неё так называемую "защиту от дурка". Чтобы пока не введешь правильные данные,программа не будет работать. Для этого используем цикл do-while.И будем повторить ввести ввод до тех пор, пока не будет введено положительное число.
Получим следующий код.
Листинг9.5
#include <stdio.h>
int main()
{
int A, sum=0;
do {
printf("Vvedite chislo:");
scanf("%d",&A); //считываем число
} while(A<=0);
while (A>0){
sum=sum+A%10;
A= A/10;
}
printf("summa chifr etogo
chisla: %d\n", sum);
return(0);
}
На этом сегодня всё. Домашнего задания к этому уроку не будет. Так как мне надо разобраться с той кучей вопросов, которые накопились за это время в комментариях.
Читать далее...


