Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗАЧЁТ ПО ИНФЕ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
775 Кб
Скачать
☆

I Рис.2. F (выражение)

оператор1

else

оператор2

Если "выражение" истинно, то выполняется "оператор 1", если ложно, то выполняется "оператор 2".

Примеры:

if ( x > y ) printf (" Мы победили!\n");

else printf (" Мы проиграли!\n");

if ( n < 10 )

{

y = x – 1;

n++;

}

else

y = z;

3) Конструкция else – if, являющаяся расширением конструкции if – else, позволяет осуществлять выбор более чем из двух вариантов (см. рис.3).

If (выражение1)

оператор1

else if (выражение2)

о

Рис.3.

ператор2

else

оператор3

Если "выражение 1" истинно, то выполняется "оператор 1". Если "выражение 1" ложно, но "выражение 2" истинно, выполняется "оператор 2". В случае, когда оба выражения ложны, выполняется "оператор 3".

Фактически конструкция else – if является видоизмененным способом задания оператора ветвления, описанного выше. По-другому эту структуру можно описать:

If (выражение1)

оператор1

else

If (выражение2)

оператор2

else

оператор3

Видно, что она состоит из оператора if – else, для которого часть else представляет собой другой оператор if – else. Про второй оператор if – else говорят, что он "вложен" в первый.

В одном операторе можно использовать столько конструкций else – if, сколько нужно, что иллюстрируется ниже:

if ( score < 1000 )

bonus = 0;

else if ( score < 1500 )

bonus = 1;

else if ( score < 2500 )

bonus = 2;

else

bonus = 10;

Не забывайте, что else соответствует ближайшему if, кроме тех случаев, когда имеются фигурные скобки.

Множественный выбор: оператор switch

Если в программе необходимо произвести выбор одного из нескольких вариантов, то удобнее применять оператор switch. Общая структура оператора:

switch (целое выражение)

{ case метка1:

операторы; (необязательные)

break; (необязательный)

case метка2:

операторы; (необязательные)

break; (необязательный)

...

default: (необязательный)

операторы; (необязательные)

}

Вначале вычисляется выражение в скобках, расположенное за ключевым словом switch. Затем программа просматривает список "меток" до тех пор, пока не находит "метку", соответствующую данному значению. Далее программа переходит к выполнению оператора, расположенного в этой строке. Если такой подходящей метки не найдется, то если существует строка с "меткой" default , то будет выполняться оператор, помеченный этой меткой. В противном случае произойдет переход к оператору, расположенному за оператором switch. Выполнение оператора break приводит к тому, что в программе происходит выход из оператора switch и осуществляется переход к следующему за ним оператору. При отсутствии оператора break будут выполнены все операторы, начиная с помеченного данной меткой до конца оператора switch. Метки, имеющиеся в операторе switch, должны быть константами или константными выражениями (выражение, операторы которого константы) целого типа (включая тип char). Запрещается использовать в качестве метки переменную. Значением выражения в скобках должна быть величина целого типа.

  1. Операторы организации циклов и continue, break языка с.

Циклом называется последовательность операторов, которая выполняется несколько раз в процессе выполнения программы при различных значениях некоторой переменной или при выполнении какого-то условия.

В языке Си реализовано три вида циклов: while(), for() и do ... while(). С учетом этого, вместо приведенного выше примера можно привести следующие варианты реализации:

С использованием оператора for()

С использованием оператора while()

С использованием оператора do... while()

С использованием операторов if и goto

sum = 0;

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

{

sum = sum + a[i];

}

sr = sum/10;

i = 0; sum = 0;

while ( i < n )

{

sum = sum + a[i];

i++;

}

sr = sum/10;

i = 0; sum = 0;

do

{

sum = sum + a[i];

i++;

}

while ( i < n );

sr = sum/10;

i = 0; sum = 0;

m:

sum = sum + a[i];

i++;

if ( i < n ) goto m;

sr = sum/10;

Оператор while определяет операции, которые циклически выполняются до тех пор, пока проверяемое "выражение" не станет ложным, или равным нулю, т.е. если "выражение" истинно (или а общем случае не равно нулю), то "оператор" (или "тело цикла") выполняется один раз, а затем "выражение" проверяется снова.

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

Оператор do while определяет действия, которые циклически выполняются до тех пор, пока проверяемое выражение не станет ложным, или равным нулю (см. рис.Error: Reference source not found). Оператор do while – это цикл с постусловием; решением, выполнять или нет в очередной раз тело цикла, принимается после его прохождения. Поэтому тело цикла будет выполнено по крайней мере один раз. Вложенным называется цикл, находящийся внутри другого цикла