Лекции по проге / 6_Комбинирование операторов
.pdf
Цикл внутри альтернативы
Программа печатает на экране содержимое массива 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
