Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 6_Комбинирование операторов

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
387.56 Кб
Скачать

Цикл внутри альтернативы

Программа печатает на экране содержимое массива arr, если его первый элемент положителен, т.е:

3 -1 4 5 0 7 -2 8 2 0

Если бы первый элемент массива был отрицателен, то ничего напечатано бы не было

Расположение цикла внутри условия приводит к тому, что цикл выполняется только если указанное условие верно

11

Задание

Определите, что выполняет следующая программа:

int arr[10] = {3, -1, 4, 5, 0, 7, -2, 8, 2, 0};

i = 0;

while (i < 10 && arr[i] > 0)

{

printf("%d ", arr[i]); i++;

}

12

Добавочное условие цикла, присоединенное операцией И

Программа печатает на экран элементы массива arr до первого неположительного элемента, т.е. будет напечатано:

3

13

Добавочное условие цикла, присоединенное операцией И

Если в условии продолжения цикла разместить два сравнения, соединенных операцией логического И, то цикл будет продолжаться до тех пор, пока одно из них не нарушится

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

14

Задание

Определите, что выполняет следующая программа:

int arr[10] = {3, -1, 4, 5, 0, 7, -2, 8, 2, 0};

i = 0;

while (i < 5 || arr[i] > 0)

{

printf("%d ", arr[i]); i++;

}

15

Добавочное условие цикла, присоединенное операцией ИЛИ

Программа будет печатать элементы массива arr пока не встретит неположительный элемент во вто-

рой половине массива, т.е. будет напечатано:

3 -1 4 5 0 7

ОШИБКА: если все элементы второй половины массива положительны, то программа выйдет за границы массива, продолжая проверять и печатать дальше

16

Задание

Измените условие так, чтобы избежать ошибки, связанной с выходом за границы массива:

int arr[10] = {3, -1, 4, 5, 0, 7, -2, 8, 2, 0};

i = 0;

while (i < 5 || arr[i] > 0)

{

printf("%d ", arr[i]); i++;

}

17

Добавочное условие цикла, присоединенное операцией ИЛИ

int arr[10] = {3, -1, 4, 5, 0, 7, -2, 8, 2, 0};

i = 0;

while ( i < 10 && (i < 5 || arr[i] > 0) )

{

printf("%d ", arr[i]); i++;

}

18

Задание

Определите, что выполняет следующая программа:

int arr[10] = {3, -1, 4, 5, 0, 7, -2, 8, 2, 0};

i = 0;

while (i < 10)

{

if (arr[i] > 0)

{ printf("%d ", arr[i]); }

i++;

}

19

Условие внутри цикла

Программа печатает на экране все положительные элементы массива arr:

3 4 5 7 8 2

Если условие вложено внутрь цикла, то код, расположенный в условии, применяется только на тех шагах цикла, когда условие верно

20