Студопедия

КАТЕГОРИИ:

Главная
Случайная страница
Познавательное
Новые статьи
Контакты
Заказать работу

Архитектура-(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

Пустой оператор

Блок или составной оператор

Лекция

Состав операторов языка C#, их синтаксис и семантика унаследованы от языка С++. Любое выражение, завершающееся точкой с запятой является оператором.

С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором:

{ оператор_1... оператор_N}

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

Пустой оператор - это "пусто", завершаемое точкой с запятой. Он используется когда по синтаксису оператор требуется, а по смыслу- нет. Иногда полезно рассматривать отсутствие операторов как существующий пустой оператор. Синтаксически допустимо ставить лишние точки с запятой, полагая, что вставляются пустые операторы. Например, синтаксически допустима следующая конструкция:

for (int j=1; j<5; j++) //оператор цикла {;;;}; //пустой оператор

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

Операторы выбора (ветвления)

Как в С++ и других языках программирования, в языке C# для выбора одной из нескольких возможностей используются две конструкции - if и switch. Первую из них обычно называют альтернативным выбором, вторую - разбором случаев.

Синтаксис оператора if:

if(выражение_1) оператор_1;else if(выражение_2) оператор_2... else if(выражение_K) оператор_Kelse оператор_N

Выражения if должны заключаться в круглые скобки и быть булевого типа. По правилам синтаксиса языка С++, then-ветвь оператора следует сразу за круглой скобкой без ключевого слова then, типичного для большинства языков программирования. Каждый из операторов может быть блоком - в частности, if-оператором. Поэтому возможна и такая конструкция:

if(выражение1) if(выражение2) if(выражение3)...

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

Семантика оператора if проста и понятна. Выражения if проверяются в порядке их написания. Как только получено значение true, проверка прекращается и выполняется оператор (это может быть блок), который следует за выражением, получившим значение true. С завершением этого оператора завершается и оператор if. Ветвь else, если она есть, относится к ближайшему открытому if.

Примеры оператора if:

if (a<0) b=1;

if (a<b&& (a>d||a= =0)) b=++; else {b*=a;a=0;}

if (a<b) if (a<c) m=a; else m=c; else if (b<c) m=b; else m=c;

Следует избегать проверки вещественных величин на равенство, вместо этого лучше сравнивать модуль их разности с некоторым малым числом:

float a,b;

if (a= =b) // не рекомендуется

if (Math.Abs(a-b)<1e-6)...//надежно!

Оператор switch (переключатель)

Частным, но важным случаем выбора из нескольких вариантов является ситуация, при которой выбор варианта определяется значениями некоторого выражения. Соответствующий оператор C#, унаследованный от C++, но с небольшими изменениями в синтаксисе, называется оператором switch. Вот его синтаксис:

switch(выражение){ case константное_выражение_1: [операторы_1 оператор_перехода_1]... case константное_выражение_K: [операторы_K оператор_перехода_K] [default: операторы_N оператор_перехода_N]}

Выполнение оператора начинается с вычисления выражения. Тип выражения чаще всего целочисленный (включая char) или строковый. Затем управление передается первому оператору из списка, помеченному константным выражением, значение которого совпало с вычисленным.

Каждая ветвь переключателя должна заканчиваться явным оператором перехода, а именно оператором break, goto или return:

Выражение в switch должно иметь целочисленный тип (включая char) или строковый.

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

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

Разбор случаев - это часто встречающаяся ситуация в самых разных задачах. Применяя оператор switch, используйте его в правильном стиле. Заканчивайте каждую case-ветвь оператором break, но не применяйте goto.


Пример

using System;

namespace l1

{

class Program

{

static void Main(string[] args)

{

int a, b, c;

a = 2;

b = 3;

if (a < b) Console.WriteLine("a Меньше b");

//Следующая инструкция ничего не отобразит на экране

if (a == b) Console.WriteLine("Этого текста никто не увидит");

Console.WriteLine();

c=a-b;//Переменная с содержит -1

Console.WriteLine("с содержит -1");

if (c<0) Console.WriteLine("Значение с отрицательно");

else if (c>=0) Console.WriteLine("Значение с неотрицательно");

Console.WriteLine();

c = b - a;//Переменная с содержит 1

Console.WriteLine("с содержит 1");

if (c < 0) Console.WriteLine("Значение с отрицательно");

else Console.WriteLine("Значение с неотрицательно");

Console.ReadKey();//Ожидание нажатия клавиши

}

}

}

Пример case

Console.WriteLine("Впиши номер Лабы");

string y = Console.ReadLine(); считывание строки

switch (Convert.ToInt16(y)) //Получение номера варианта

{

case 1:

laba1(); //Запуск функции лаба по работе с массивом двумерным

break;

case 2: laba2();

break;

case 3: laba3();

break;

case 4: laba4(); //Лаба одномерный массив

break;

case 5: laba5();

break;

default: Console.WriteLine("Такой лабы нету повторите попытку");

break;

}

<== предыдущая лекция | следующая лекция ==>
Поделиться с друзьями:


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


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



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




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

AltStyle によって変換されたページ (->オリジナル) /