Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОтветыЭкзамОАиП1сем.docx
Скачиваний:
10
Добавлен:
30.01.2023
Размер:
2.09 Mб
Скачать

Void main()

{ int i; float s, x;

for (s = 0, i = 1; i < 10; i++)

{ std::cin >> x;

if (x == 0) break;

s += x;

}

std::cout << s;

}

Оператор break вызывает прерывание цикла, a continue — прерывание текущей итерации цикла и осуществляет переход к следующей итерации. При этом все операторы до конца тела цикла пропускаются. В цикле for оператор continue вызывает выполнение операторов приращения и проверки условия цикла. В циклах while и do-while оператор continue передает управление операторам проверки условий цикла.

Пример.

int a, b;

for (a = 1, b = 0; a < 100; b += a, a++)

{ if (b % 2) continue; //если остаток от деле-ния не равен 0, то передается управление на оче-редную итерацию без обработки четных сумм, иначе – переход к следующему оператору

. //операторы обработки четных сумм

}

14. Оператор перехода goto. Оператор return.

Оператор goto:

Использование оператора безусловного перехода goto в программировании не рекомендуется.

Формат оператора:

goto метка;

        ……..

метка: оператор;

Оператор goto передает управление на оператор, помеченный меткой.

Пример организации цикла с использованием goto и if:

int i = 1, sum = 0;

const int max = 10;

Mt1: sum += i;

if (++i <= max)

goto Mt1; // накопление суммы целых чисел от 1 до 10

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

Например, выход из многократно вложенных циклов (поскольку оператор break осуществляет выход только из того цикла, где он использован):

for (…)

for (…)

{ … if (условие) goto Eror;

}

Eror: …

Оператор return:

Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом.

return [выражение];

Значение выражения, если оно задано, возвращается в вызывающую функцию в качестве значения вызываемой функции.

int sum(int a, int b)

{ return (a+b); }

Если выражение опущено, то возвращаемое значение не определено.

Если функция не должна иметь возвращаемого значения, то ее нужно объявлять с типом void.

Этот оператор также прекращает выполнение функции main() и завершает программу. Управление возвращается операционной системе.

15. Переключатель switch. Примеры использования.

Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, значение которого должно быть целым.

Все константные выражения в операторе switch должны быть уникальны..

Выполнение оператора. Вычисляется выражение в круглых скобках. Полученное значение сравнивается с константными выражениями, следующими за ключевыми словами case.

Если одно из константных выражений совпадает с полученным значением, то управление передается на оператор, помеченный соответствующим case.

Если ни одно из константных выражений не совпадает с полученным значением, то управление передается на оператор, помеченный словом default, а в случае его отсутствия управление передается на следующий после switch оператор.  

 int i = 2;

switch (i)

{ case 1: i += 2; //i=i+2

case 2: i *= 3; //i=i*3 i = 6

case 0: i /= 2; //i=i/2

case 4: i = 5; //i=i-5

default: ;

} 

Изменим ранее приведенный пример с вложенными операторами if так, чтобы использовать оператор switch:

char ZNAK;

int x, y, z;

switch (ZNAK)

{ case ‘+’: x = y + z;

case ‘’: x = y z;

case ‘*’: x = y * z;

case ‘/’ : x = y / z;

default: ;

}

В теле оператора switch можно использовать вложенные операторы switch. При этом после ключевых слов case могут быть одинаковые константные выражения.

switch (a)

{ case 1: b = c; break;

case 2:

switch (d)

{ case 0: f = s; break;

case 1: f = 9; break;

case 2: f = 9; break;

}

case 3: b = c; break;

}

Использование оператора break позволяет в нужный момент прервать последовательность выполняемых операторов в теле оператора switch путем передачи управления оператору, следующему за switch.