Оператор выбора

Если в программе необходимо выбрать один из нескольких многочисленных вариантов, то вместо вложенной конструкции if более целесообразно применять оператор-переключатель switch, имеющий следующий синтаксис:

<переключатель> = switch (< выражение >)

{

{ case < const >:

{(< оператор >|< выраж >); }

[ break; ]}

[ default:

{(< оператор >|< выраж >); }]

}

Здесь для выполнения выбирается тот оператор или выражение, константа которого совпадает со значением выражения. Как выражение, так и константы должны иметь значения целого или символьного типа.

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

Пример на случай записи одного оператора для нескольких констант (альтернатива записи через запятую для ТП):

switch (n)

case 3:;

case 4:;

case 5:

{

….

break;

}

Оператор break является своего рода остановкой выполнения условия, т.е. с помощью него мы сразу же завершаем выполнение нашего оператора выбора и дальше продолжаем выполнение программы.

Но вы можете недоумевать; зачем пользоваться оператором break, когда оператор выбора и без него сам завершит свою работу. Это же даже не цикл, здесь необязательно, как бы принудительно, завершать процесс, но есть одно но. И это Но давайте рассмотрим на примере:

Int znachenie=1;

switsh(znachenie) {

case 1:

printf(“Значение 1”);

case 2:

printf(“Значение 2”);

default:

printf(“Другое значение!”);

}

По логике, да и по выше описанному материалу, на экране должно появиться сообщение: Значение 1. Но так как мы взяли и опустили оператор break, то на экране появится: Значение 1 Значение 2 Другое значение!

Т.е. из-за того, что нет оператора прерывания, оператор (функция) выбора switch, найдя нужное значение в операторах case, далее будет выполняться все подряд. Поэтому не забывайте вставлять в противовес каждому оператору case оператор break

Циклы.

Вычислительные процессы с многократным повторением однотипных вычислений/действий для различных значений входящих величин/данных называются циклическими, повторяющиеся участки вычислений – циклами, изменяющиеся в цикле величины – переменными цикла. В зависимости от того, где происходит проверка условия продолжения или окончания цикла, циклы разделяют на: цикл с предусловием и цикл с постусловием.

Цикл с пред условием:

<цикл с пред условием>=while(<выражение>)

(|<оператор>|<выражение>|)

Цикл будет выполняться, пока <выражение> истинно. Если значение выражения равно 0(ложь), то цикл свою работу завершает.

Цикл с пост условием:

<цикл с пост условием>=do

(|<оператор>|<выражение>|);

While (<выражение>);

Отличия от ТР состоят в следующем:

ТР ТС

Как избежать зацикливания?

Тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания или продолжения, иначе цикл будет продолжаться бесконечно. Условие окончание цикла должно быть в конце концов удовлетворено

Цикл с параметром:

<цикл for>=for([<выр1>]; [<выр2>]; [<выр3>])

(|<опер>|<выр>|)

<выр1> служит для инициализации параметра цикла и вычисляется только 1 раз перед началом выполнения цикла. <выр2> определяет условие продолжение цикла. Оно выполняется перед каждым шагом цикла. Когда выражение становится ложным, цикл завершается. Если же оно истинно, то выполняется оператор тела цикла, который может быть простым или составным. <выр3> вычисляется в конце каждого выполнения тела цикла. Обычно оно применяется для коррекции значения параметра цикла.

В операторе for можно опустить одно, два или даже все выражения, однако «;» должны оставаться на месте. Это будет равносильно тому, что значение этих выражений будет всегда истинна и цикл никогда не завершится, если в теле цикла нет прерывания.

Семантика данного оператора реализуется через цикл с предусловием и представляется следующим образом:

       
   
 
 
 
   


нет

 
 
(|<опер>|<выр>|) <выр3>



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: