Оператор цикла с постусловием do
Синтаксис:
do < оператор >while ( < выражение >);
Действие:
Тело оператора цикла doвыполняется один или несколько раз до тех пор, пока значение < выражения > не станет ложным (равным нулю). Вначале выполняется тело цикла — < оператор >, затем вычисляется условие — < выражение >. Если выражение ложно, то оператор цикла doзавершается и управление передается следующему за оператором whileоператору программы. Если значение выражения истинно (не равно нулю), то тело цикла выполняется снова, и снова вычисляется выражение. Выполнение тела оператора цикла doповторяется до тех пор, пока выражение не станет ложным. Оператор doможет также завершиться при выполнении в своем теле операторов break, goto, return.
Пример:
do {
у = f(x);
х--;
} while(x > 0);
Вначале выполняется составной оператор. Затем вычисляется выражение х>0.Если оно истинно, то составной оператор выполняется снова, и снопа вычисляется выражение х>0.Тело оператора цикла doвыполняется до тех пор, пока значение хне станет меньше или равно нулю.
Оператор продолжения continue
Синтаксис:
continue;
Действие:
Оператор продолжения continueпередает управление на следующую итерацию в операторах цикла do, for, while. Он может появиться только в теле этих операторов. Остающиеся в теле цикла операторы при этом не выполняются. В операторах цикла doи whileследующая итерация начинается с вычисления условного выражения. Для оператора forследующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.
Пример:
while(i-- > 0) {
х = f(i);
if(х == 1)
continue;
else
y = x * x;
}
Тело оператора цикла whileвыполняется, если iбольше нуля. Сначала значение f(i)присваивается х; затем, если хне равен 1, то уприсваивается значение квадрата х, и управление передается в заголовок цикла, т. е. на вычисление выражения i-->0. Если же х равен 1, выполняется оператор продолжения continue, и выполнение возобновляется с заголовка оператора цикла while, без вычисления квадрата х.
Оператор-переключатель switch
Синтаксис:
switch( < выражение >)
{
[< объявление >]
[case < константное-выражение >:] [ < оператор >]
[case < константное-выражение >:] [< оператор >]
[default:] [ < оператор >]
}
Действие:
Оператор-переключатель switchпредназначен для выбора одного из нескольких альтернативных путей выполнения программы. Выполнение оператора-переключателя начинается с вычисления значения выражения переключения (выражения, следующего за ключевым словом switchв круглых скобках). После этого управление передается одному из < операторов > тела переключателя. В теле переключателя содержатся конструкции case < константное-выражение >:, которые синтаксически представляют собой метки операторов. Константные выражения в данном контексте называются константами варианта. Оператор, получающий управление, — это тот оператор, значение константы варианта которого совпадает со значением выражения переключения. Значение каждой константы варианта должно быть уникальным внутри тела оператора-переключателя.
Выполнение тела оператора-переключателя switchначинается с выбранного таким образом оператора и продолжается до конца тела или до тех пор, пока какой-либо оператор не передаст управление за пределы тела.
Оператор, следующий за ключевым словом default, выполняется, если ни одна из констант варианта не равна значению выражения переключения. Если же слово defaultопущено, то ни один оператор в теле переключателя не выполняется, и управление передается на оператор, следующий за переключателем в программе.
Выражение переключения должно иметь целочисленный тип. В версии 4 СП MSC этот тип не должен превышать по размеру int; в версии 5 СП MSC и в СП ТС это может быть любой целочисленный тип (в том числе enum). Однако в версии 5 СП MSC выражение переключения всегда преобразуется к типу int. Если при этом преобразовании возможна потеря значащих битов, то компилятор выдаст предупреждающее сообщение. Тип каждой константы варианта также приводится к типу выражения переключения.
Читать дальше