Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Состав операторов языка C#, их синтаксис и семантика унаследованы от языка С++. Любое выражение, завершающееся точкой с запятой является оператором.
Блок или составной оператор
С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором:
{
оператор_1
...
оператор_N
}
Синтаксически блок воспринимается как единичный оператор и может использоваться всюду в конструкциях, где синтаксис требует одного оператора. Тело цикла, ветви оператора if, как правило, представляются блоком.
Пустой оператор
Пустой оператор - это "пусто", завершаемое точкой с запятой. Он используется когда по синтаксису оператор требуется, а по смыслу- нет. Иногда полезно рассматривать отсутствие операторов как существующий пустой оператор. Синтаксически допустимо ставить лишние точки с запятой, полагая, что вставляются пустые операторы. Например, синтаксически допустима следующая конструкция:
for (int j=1; j<5; j++) //оператор цикла
{;;;}; //пустой оператор
Она может рассматриваться как задержка по времени, работа на холостом ходе.
Операторы выбора (ветвления)
Как в С++ и других языках программирования, в языке C# для выбора одной из нескольких возможностей используются две конструкции - if и switch. Первую из них обычно называют альтернативным выбором, вторую - разбором случаев.
Оператор if
Синтаксис оператора if:
if(выражение_1) оператор_1;
else if(выражение_2) оператор_2
...
else if(выражение_K) оператор_K
else оператор_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;
}