Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы 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.

Рекомендации по использованию оператора switch

Ниже приведены основные рекомендации по использованию оператора switch.

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

 

Упорядочение разделов по вхождению, номеру или символу (в алфавитном порядке). Простые операторы switch, представленные в примерах этого раздела, содержат не­большое число разделов, и их логику легко понять с первого взгляда. Однако многие конструкции switch могут быть достаточно протяженными, что значительно затрудняет их чтение, Схема, в которой метки case упорядочены, повышает читаемость кода.

Существует несколько возможных схем:

1. Схема по вхождению если те разделы switch, которые запускаются наиболее часто, рас­положены в начале, это упрощает восстановление логики кода. Кроме того, это ускоряет его, так как редко используемые блоки не будут обрабатываться при каж­дом проходе.

2. Схема в алфавитном или числовом порядке — для упрощения навигации по меткам жела­тельно расположить их в алфавитном или числовом порядке.

 

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

1. Раздел default следует использовать только для тех действий, которые должны вы­полняться по умолчанию.

2. Если он не используется, в нем следует обрабатывать ошибки.

<== предыдущая лекция | следующая лекция ==>
Вложенные операторы if | Область видимости переменных
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 719; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.