Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_практикум_ч1_2007.DOC
Скачиваний:
15
Добавлен:
10.11.2019
Размер:
379.9 Кб
Скачать

Цикл for

Основная форма цикла for имеет следующий вид:

For (инициализация ; проверка условия ; изменение) оператор;

В простейшей форме инициализация используется для присвоения на­чального значения параметру цикла. Проверка условия - обычно условное выражение, которое определяет, когда цикл должен быть завершен. Прира­щение обычно используется для изменения параметра цикла каждый раз при повторении цикла. Эти три раздела заголовка цикла должны быть раз­делены точкой с запятой. Выполнение цикла происходит до тех пор, пока условное выражение истинно. Как только условие становится ложным, на­чинает выполняться следующий за циклом for оператор.

Примеры:

for (i=0; i<10; i++)

printf("%d",i);

В результате выполнения этого оператора будут напечатаны в столбик цифры от 0 до 9. Для печати этих цифр в обратном порядке можно исполь­зовать следующий оператор:

for (i=9; i>=0; i--)

printf("%d",i);

Цикл for похож на аналогичные циклы в других языках программиро­вания, и в то же время этот оператор в языке С гораздо более гибкий, мощный и применим во многих ситуациях. В качестве параметра цикла необязательно использовать целочислен­ный счетчик.

Следующий фрагмент программы выводит на экран буквы латинского алфавита:

unsigned char ch;

for (ch=’a’; ch<=’z’;ch++)

printf("%c",ch);

Следующий фрагмент программы будет выполняться до тех пор, пока с клавиатуры не будет введен символ 'N'.

for (ch=’0’; ch!=’N’;)

printf("%c",ch);

Место, где должно быть приращение, пусто. Случайно или намеренно может получиться цикл, из которого нет выхода, так назы­ваемый бесконечный цикл. Для таких циклов может быть организован выход. Для этого используется оператор break. Если оператор break встречается в составном операторе цикла, то происходит немедленное прекращение выполнения цикла и начинается выполнение следующего оператора программы.

Циклы while и do while

Основная форма цикла while имеет следующий вид:

While (условие) оператор;

Оператор может быть простым, составным или пустым оператором. Цикл выполняется до тех пор, пока условие принимает значение "истинно". Когда же условие примет значение "ложно", программа передаст управление следующему оператору программы. Так же как и в цикле for, в цикле while сначала проверяется условие, а затем выполняется оператор. Это так называемый цикл с предусловием.

В отличие от предыдущих циклов в цикле do while условие проверяется в конце оператора цикла. Основная форма оператора do while следующая:

do

{

последовательность операторов

}

while (условие);

Фигурные скобки необязательны, если внутри них находится один оператор. Тем не менее, они чаще всего ставятся для лучшей читаемости программы, а также чтобы не спутать (программисту, а не компилятору) с оператором while. Оператор do while называется оператором цикла с постусловием.

Какое бы условие ни стояло в конце оператора, набор операторов в фигурных скобках один (первый) раз выполнится обязательно. В циклах for и while оператор может не выполниться ни разу.

Пример:

/* Программа выбирает случайное число от 1 до 100, вы должны угадать его */

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <time.h>

main()

{

int s,x,k;

int n=0;

randomize(); //генератор случайных чисел, содержится в заголовочных файлах stdlib.h, time.h

s=random(100)+1; //функция возвращает случайное значение

do

{

printf("Введите число от 1 do 100 \n");

scanf("%d",&x);

n++;

if (s<x) printf("Загаданное число меньше! \n");

if (s>x) printf("Загаданное число больше! \n");

k=s-x;

}

while (k!=0);

printf("Вы угадали число! \n");

printf("Затратили %d попыток", n);

getch();

}