Вівторок, 19.03.2024, 17:05
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Чи працювали ви з мікроконтролером?
Всього відповідей: 5
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Подведем итоги. В операторе for используются три выражения, управляющие работой цикла. Они разделены символом "точка с запятой". Инициализирующее выражение вычисляется только один раз до начала выполнения какого-нибудь из операторов цикла. Если проверяемое выражение оказывается истинным, или не равным нулю, тело цикла выполняется один раз. Затем вычисляется величина корректируемого выражения, и значение проверяемого выражения определяется вновь. Оператор for - это цикл с предусловием. Решение о том, выполнить ли в очередной раз тело цикла или нет, принимается до начала его прохождения. Поэтому может случиться так, что тело цикла не будет выполнено ни разу. Оператор, образующий тело цикла, может быть как простым, так и составным.

 

Операция "запятая" увеличивает гибкость использования цикла for, позволяя включить в его спецификацию несколько инициализирующих или корректирующих выражений.

 

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

Цикл

 
do оператор while(e);
 

выполняется до тех пор, пока выражение e имеет значение "истина". В отличие от цикла while, в котором проверка условия окончания цикла делается до выполнения тела цикла, в цикле do такая проверка имеет место после выполнения тела цикла. Следовательно, тело цикла do будет выполнено хотя бы один раз, даже если выражение e имеет значение "ложь" c самого начала. Цикл do аналогичен циклу repeat в языке Паскаль, отличаясь от него лишь тем, что цикл repeat выполняется до тех пор, пока некоторое условие выходa из цикла не становится истинным, а цикл do выполняется все время, пока некоторое условие остается истинным!

 
!

Цикл do while - это конструкция с условием на выходе.

 

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

 
do {
выдвиньте предположение
получите ответ вида y,n
} while(ответ не совпадает с y);
 
 
!

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

 
do
оператор
while (ответ будет да)
 

В данном случае, после того как пользователь ответит "нет", "оператор" будет выполнен, поскольку проверка осуществляется слишком поздно.

 
 

Пример:

 
do
 scanf("%d", &number);
while(number!=50);
 

Подведем итоги.

 

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

 

Особенности работы с языком Си. Циклом какого вида лучше всего воспользоваться? Во-первых, решите, нужен ли вам цикл с предусловием или же с постусловием. Чаще вам нужен будет цикл с предусловием. По оценкам Кернигана и Ритчи, в среднем циклы с постусловием составляют только 5% общего числа используемых циклов. Существует несколько причин, по которым программисты предпочитают пользоваться циклами с предусловием. В их числе один общий принцип, согласно которому лучше посмотреть, куда вы прыгаете, до прыжка, а не после. Вторым моментом является то, что программу легче читать, если проверяемое условие находится в начале цикла. И наконец, во многих случаях важно, чтобы тело цикла игнорировалось полностью, если условие вначале не выполняется.

 

Вложенные циклыВложенным называется цикл, находящийся внутри другого цикла.

 

Пример:

 
/* Простое число - это такое число, которое 
делится нацело только на 1 и само на себя. 
Первыми простыми числами будут 2, 3, 5, 7 и 11. */
/*простые числа*/ 
main()
{
 int number, divisor, limit;
 int count=0;
 printf("Укажите, пожалуйста, верхний предел 
 для поиска простых чисел. \n");
 printf("Bерхний предел должен быть 2 
 или больше.\n");
 scanf("%d",&limit);
 while (limit<2) {
 /* вторая попытка, если ошибка при вводе */
 printf("Bы были невнимательны! 
 Попробуйте еще раз\n");
 scanf("%d",&limit);
 }
 printf("Ceйчac напечатаем простые числа!\n");
 for (number=2;number<=limit; number++) 
 /*внешний цикл*/
 {
 for(divisor=2; number%divisor!=0; divisor++)
 ;
 if(divisor==number)
 {
 printf("%5d",number);
 if(++count%10==0)
 printf("\n");/* новая строка начинается 
 через каждые 10 простых чисел */
 }
 }
 printf("Pa6oта завершена!\n");
}
 

Во внешнем цикле каждое число, начиная с 2 и кончая величиной limit, последовательно берется для проверки. Указанная проверка осуществляется во внутреннем цикле. В count хранится счетчик получаемых простых чисел. При печати каждое одиннадцатое простое число печатается с новой строки.

 

Форма входа
Пошук
Друзі сайту
Календар
«  Березень 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Єдина Країна! Единая Страна!