Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_200309.doc
Скачиваний:
39
Добавлен:
24.12.2018
Размер:
4.38 Mб
Скачать

Операторы if-else с несколькими ветвями

Методика, в которой значение пере­менной определяет, какой оператор (или составное выражение) из возможных следует исполнять, настолько распространена в программировании, что была выработана стан­дартизованная система создания структур if-else, реализующих эту функциональность. Результирующие структуры называются операторами if-else с несколькими ветвями.

Оператор_if_else_с_несколькими_ветвями ::=

if (<Логическое_выражение_1>)

<Оператор_1> | <Составной_оператор_1>

else if (<Логическое_выражение_2>)

<Оператор_2>; | <Составной_оператор_2>

else if (<Логическое_выражение_3>)

<Оператор_3>; | <Составной_оператор_3>

else

<Оператор_по_умолчанию>; | <Составной_оператор_по_умопчанию>

Рассмотрим пример. Разработать программу, которая идентифицирует введенное число, определяя, относится ли оно к диапазону целых чисел от 1 до 5. Если оно относится к этому диапазону, то это число выводится на консоль совместно с сообщением «Число принадлежит диапазону от 1 до 5», в противном случае выводится сообщение «Число не входит в указанный диапазон».

Оператор Switch

Оператор switch позволяет программе выбрать одно из нескольких действий на ос­нове значения заданного выражения. Логика, реализуемая switch, подобна логике опе­ратора if-else. Их сходства и отличия иллюстрируются примером.

Рассмотрим программу, которая осуществляет различные арифметические действия в зависимости от названия действия. Например, если в командной строке написать «суммирование»,то программа вычислит сумму введенных чисел. Для реализации этой программы использовать оператор if else.

using System;

class calculator

{

public static void Main()

{

string operation;

int a, b, c;

Console.WriteLine("Введите числа");

a=Convert.ToInt32(Console.ReadLine());

b=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите действие: сложение, вычитание, умножение, деление.");

operation=Console.ReadLine();

if (operation=="сложение")

Console.WriteLine("Сумма введенных чисел {0}",a+b);

else if (operation=="вычитание")

Console.WriteLine("Разность введенных чисел {0}",a-b);

else if (operation=="умножение")

Console.WriteLine("Произведение введенных чисел {0}",a*b);

else if (operation=="деление")

Console.WriteLine("Разность введенных чисел {0}",a/b);

else

Console.WriteLine("Введенная операция отсутствует");

Console.ReadLine();

}

}

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

Рассмотрим синтаксический блок оператора switch.

Switch (<Выражение для switch>)

case <Константное выражение> :

< Оператор1>;

< Оператор2>;

...

< Оператор break>

case <Константное выражение> :

< Оператор1>;

< Оператор2>;

...

< Оператор break>

...

default:

< Оператор1>;

< Оператор2>;

...

< Оператор break>

<Выражение для switch> - это управляющее выражение.

сase, default – называются разделами выбора.

<Константное выражение> - следует за ключевым словом case и называется case-значением или case-меткой. Причем, каждая из них должна быть уникальной.

< Оператор break> - используется для завершения раздела выбора.

Примечание:

  1. Количество блоков case не ограничено.

  2. Блок default может быть один или не одного.

Напишем программу для предыдущего примера с использованием оператора switch.

using System;

class calculator

{

public static void Main()

{

string operation;

int a, b, c;

Console.WriteLine("Введите числа");

a=Convert.ToInt32(Console.ReadLine());

b=Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите действие: сложение, вычитание, умножение, деление.");

operation=Console.ReadLine();

switch (operation)

{

case "сложение":

Console.WriteLine("Сумма введенных чисел {0}",a+b);

break;

case "вычитание":

Console.WriteLine("Разность введенных чисел {0}",a-b);

break;

case "умножение":

Console.WriteLine("Произведение введенных чисел {0}",a*b);

break;

case "деление":

Console.WriteLine("Разность введенных чисел {0}",a/b);

break;

default:

Console.WriteLine("Введенная операция отсутствует");

break;

}

Console.ReadLine();

}

}

Когда поток управления переходит от одного раздела switch к другому, такое выполне­ние называется провалом. Для его предотвращения применяется оператор break.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]