Тело оператора цикла do
выполняется один или несколько раз до тех пор, пока значение <Пример:
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 в круглых скобках). После этого управление передается одному из <Выполнение тела оператора-переключателя switch
начинается с выбранного таким образом оператора и продолжается до конца тела или до тех пор, пока какой-либо оператор не передаст управление за пределы тела.Оператор, следующий за ключевым словом default
, выполняется, если ни одна из констант варианта не равна значению выражения переключения. Если же слово default опущено, то ни один оператор в теле переключателя не выполняется, и управление передается на оператор, следующий за переключателем в программе.Выражение переключения должно иметь целочисленный тип. В версии 4 СП MSC этот тип не должен превышать по размеру int
; в версии 5 СП MSC и в СП ТС это может быть любой целочисленный тип (в том числе enum). Однако в версии 5 СП MSC выражение переключения всегда преобразуется к типу int. Если при этом преобразовании возможна потеря значащих битов, то компилятор выдаст предупреждающее сообщение. Тип каждой константы варианта также приводится к типу выражения переключения.Синтаксически конструкции case
и default являются метками (однако, на них нельзя передать управление по оператору goto). Метки case и default существенны только при начальной проверке, когда выбирается оператор для выполнения в теле переключателя. Все операторы тела, следующие за выбранным, выполняются последовательно, как бы "не замечая" меток case и default, если только какой-либо из операторов не передаст управление за пределы тела оператора switch. Для выхода из тела переключателя обычно используется оператор разрыва break. Одна из распространенных ошибок состоит в том, что программисты забывают разделять альтернативные операторы в теле переключателя операторами break.