Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSBasicCourse2ndedPodbelsky / CSBasicCourse2ndedPodbelsky.rtf
Скачиваний:
27
Добавлен:
22.03.2016
Размер:
11.9 Mб
Скачать

Int ball; // оценка в баллах:

do

Console.Write("Введите оценку в баллах: ");

while (!int.TryParse(Console.ReadLine(), out ball)

|| ball <= 0 || ball > 10) ;

switch (ball)

{

case 1:

case 2:

case 3:

Console.WriteLine("Неудовлетворительно");

break;

case 4:

case 5:

Console.WriteLine("Удовлетворительно");

break;

case 6:

case 7:

Console.WriteLine("Хорошо");

break;

case 8:

case 9:

case 10:

Console.WriteLine("Отлично");

break;

default: Console.WriteLine("Ошибка в данных");

break;

} // Конец переключателя

}

}

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

Введите оценку в баллах: гг<ENTER>

Введите оценку в баллах: -9<ENTER>

Введите оценку в баллах: 0<ENTER>

Введите оценку в баллах: 9<ENTER>

Отлично

Обратите внимание на обязательность оператора break в каждой ветви

переключателя. С его помощью управление всегда передаётся оператору,

размещённому за переключателем.

В

переключателе

могут

находиться

определения

объектов .

Тело

переключателя, и каждый оператор, входящий в переключатель, может быть

блоком. В этом случае нужно избегать ошибок "перескакивания" через

определения:

switch (n) // Переключатель с ошибками

{ char d = 'D'; // Никогда не обрабатывается

case 1: double f = 3.14;// Обрабатывается только для n == 1

break;

case 2:… if ((int)d != (int)f) // Ошибка: d и/или f не определены

break;

... }

Если в переключателе при некотором значении переключающего выражения

необходимо выполнить более одного раздела, то программист может заранее

выбрать последовательность обхода ветвей, применяя оператор перехода goto case

i или goto default.

Пример программы с переключателем, где выводятся названия нечетных

целых цифр, не меньших заданной.

// 06_06.cs - переключатель с внутренними переходами

using System;

class Program

{

static void Main() {

int ic = 5;

string line = "";

switch (ic)

{

case 0:

case 1: line += "one, ";

goto case 2;

case 2:

case 3: line += "three, ";

goto case 4;

case 4:

case 5: line += "five, ";

goto case 6;

case 6:

case 7: line += "seven, "

;

goto case 8;

case 8:

case 9: line += "nine.";

break;

default: line = "Error! It is not digit!";

break;

}

Console.WriteLine("Цифры: " + line);

}

}

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

Цифры: five, seven, nine.

Контрольные вопросы

Каково назначение оператора в программах на C#?

Перечислите операторы языка C#.

Каков обязательный признак отличного от блока оператора в C#?

Что такое оператор-выражение?

Где пустой оператор?

Что такое метка?

Дайте определение блока.

Какими правилами определяются вход в блок и выход из него?

Назовите операторы выбора (ветвлений).

Какие операторы не могут входить в условный оператор?

Что такое сокращённая форма условного оператора?

Как устанавливается соответствие между if и else при вложениях условных

операторов?

Назовите виды операторов циклов в C#.

Какой оператор не может быть телом цикла?

Какой тип имеет выражение-условие в операторе цикла?

Сколько элементов в заголовке цикла общего вида (цикла for) и как они

разделяются?

Что такое инициализатор цикла общего вида (цикла for)?

Когда вычисляется завершающее выражение цикла for?

Укажите область существования объектов, объявленных в инициализаторе цикла

for.

Как выполняется вложение циклов?

Какие операторы могут прервать выполнение цикла до его завершения,

запланированного выражением-условием?

Каково минимальное количество итераций в цикле с постусловием?

Назовите назначение оператора break. Где его можно применять?

Укажите возможности оператора goto при вложениях циклов.

Где и когда употребляется оператор continue?

Какого типа может быть значение переключающего выражения в переключателе?

Что называют меткой переключателя?

Каким оператором должна завершиться ветвь переключателя?

Какая конструкция вводит ветвь переключателя?

В каких случаях выполняется ветвь переключателя, введённая меткой default?

Соседние файлы в папке CSBasicCourse2ndedPodbelsky