Лекция: Оператор выбора switch

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

switch (выражение)

{case константа1, вариант 1; break;

.. .

case константа n, вариант n; break;

default: вариант n+1; break;}

 
 

Рисунок 2 – Структурная схема оператора выбораswitch

 

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

 

Например:

#include<stdio.h>

main( )

{

char y;

scanf(“%c”,&y);

switch(y)

{

case ‘1’:

printf(“Ветвь 1\n”);

break;

case ‘2’:

case ‘3’:

printf(“Ветвь 2 или 3\n”);

break;

default:

printf(“Ветви 1,2,3 не работают\n”);

}

}

Оператор scanf вводит переменную y. Ее значение в операторе switch сравнивается со всеми константами операторов case. Если ввести символ ‘1’, то на экране появится строка:

Ветвь 1

по оператору break произойдет выход из переключателя switch, и программа завершит свою работу. Если ввести символы ‘2’ или ‘3’, то на экран будет выведена строка:

Ветвь 2 или 3

При вводе любого другого символа управление перейдет к ключевому слову default и на экране появится строка:

Ветви 1,2,3 не работают.

Тема 3. Операторы цикла в языке программирования Си++.

  1. Оператор цикла while

Описание:

while (выражение) оператор;

Действие:

Выполняется оператор до тех пор, пока значение выражения в скобках истинно. Проверка значения выражения происходит перед каждым выполнением оператора. Когда значение выражения ложно, цикл while заканчивается. Если выражение ложно с самого начала, оператор не выполняется ни разу.

Комментарий:

Следует заметить, что после ключевого слова while и выражения, заключенного в круглые скобки, точка с запятой не ставится.

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

 

Пример:

/*Демонстрация цикла while*/

#include <stdio.h>

main( )

{

int i=1

while (getchar()!=’R’) i++;

/*оператор getchar() вводит любой символ с клавиатуры*/

printf(“Символ R %d-й”,i);

}

Приведенная программа позволяет определить порядковый номер первой введенной буквы R в последовательности символов. Она показывает использование цикла while, в теле которого всего одна инструкция (i++ — увеличение значения целого числа i на единицу). Если запустить эту программу на выполнение и ввести последовательность символов, например:

abFk!Rgm ,

то на экране появится строка:

Символ R 6-й.

 

  1. Оператор цикла do-while

Описание:

do оператор while (выражение);

Действие:

В операторе do-while тело цикла выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.

Комментарий: после слова while и выражения, заключенного в скобки, ставится точка с запятой. Если в теле цикла содержится более одной инструкции, то операторы цикла заключаются в фигурные скобки.

Пример:

/*Демонстрация цикла do-while */

#include <stdio.h>

main()

{

int i=0; /*i=0, а не единице*/

do i++; while (getchar()!=’R’);

printf(“Символ R %d-й”,i);

}

Программа, представленная выше, теперь написана с циклом do-while. Результат программы будет таким же.

 

  1. Оператор цикла for

Описание:

for (выражение 1; выражение 2; выражение 3) оператор;

Действие:

В круглых скобках содержится три выражения. Первое из них служит для инициализации счетчика. Она осуществляется только один раз – когда цикл for начинает выполняться. Второе выражение необходимо для проверки условия, которая осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным, цикл завершается. Третье выражение вычисляется в конце каждого выполнения тела цикла, происходит приращение числа на шаг.

Комментарий: в операторе цикла for точка с запятой после закрывающейся круглой скобки не ставится. Любое из трех или все три выражения в операторе могут отсутствовать, однако разделяющие их точки с запятыми опускать нельзя. Если отсутствует выражение 2, имеем бесконечный цикл. Например:

for (scanf(“%d”,&p);;p++) оператор;

В языке СИ предусмотрены две нетрадиционные операции: (++) – для увеличения на единицу и (--) – для уменьшения на единицу значения операнда. Операции ++ и — можно записывать как перед операндом, так и после него. В первом случае (++n или --n) значение операнда (n) изменяется перед его использованием в соответствующем выражении, а во втором (n++ или n--) – после его использования.

Если отсутствуют выражения 1 и 3, цикл становится эквивалентным while. Например:

for (;a<20;) оператор;

Каждое из выражений может состоять из нескольких выражений, объединенных операцией «запятая». Например:

for(i=0, j=1; i<100; i++, j++) a[i]=b[j];

Тело цикла заключается в фигурные скобки, если в нем более одного оператора.

Пример:

/*демонстрация цикла for*/

#include <stdio.h>

main()

{int i,j=1,k;

for (i=1;i<=3;i++)

printf(“Минск\t”);

/*В цикле for три раза выполняется функция вывода*/

/*Здесь i-управляющая переменная цикла*/

printf(“\nУкажите число повторений цикла\n”);

scanf(“%d”,&k);

for (i=1;i<=k;i++)

{j*=i;

printf(“%d”,j);}

/*Здесь две инструкции (более одной), поэтому они заключаются в фигурные скобки*/

j=i;

printf(“\n”);

/*Переменной j присваивается значение 1 и осуществляется перевод курсора*/

/*В следующем цикле for выполняются те же действия, что и в предыдущем*/

for (i=1;i<=k;i++) printf(“%d “, j*=i);

}

Результаты выполнения программы следующие:

Минск Минск Минск

Укажите число повторений цикла

1 2 6 24 120

1 2 6 24 120

 

еще рефераты
Еще работы по информатике