ОПЕРАТОРЫ ЯЗЫКА C#
Программ а на языке С# состоит из последоZl_evghklb операторо каждый из
которых определяет законченное описание некоторого дейстby b aZdZgqbается точкой с
запятой. Все операторы можно разделить на 4 группы: операторы следоZgby операторы
_lления, операторы цикла и операторы передачи упраe_gby .
Операторы следования
Операторы следоZgby ыполняются _kl_klенном порядке: начиная с перh]h ^h
последнего. К операторам следования относятся: ujZ`_gb_ b khklZ\ghc hi_jZlhj
Любое выражение , за_jrZxs__ky lhqdhc с запятой, рассматриZ_lky dZd hi_jZlhj
uiheg_gb_ которого заключается uqbke_gb_f значения ujZ`_gby или uiheg_gb_f
законченного действия, например, uahом метода. Например:
++i; //оператор инкремента
x+= y; //оператор сложения с присZbанием
Con sole .WriteLine (x); //вызов метода
x=Math .Pow (a,b)+ a*b; //вычисление сложного ujZ`_gby
Составной оператор или блок представляет собой последоZl_evghklv hi_jZlhjh,
заключенных фигурные скобки {}. Блок обладает собст_gghc областью видимости :
объяe_gg ые gmljb блока имена доступны только gmljb данного блока или блоко
eh`_gguo него. Составные операторы применяются случае, когда праbeZ языка
предусматриZxl наличие только одного оператора, а логика программы требует
нескольких операторо Наприм ер, тело цикла while должно состоять только из одного
оператора. Если заключить несколько операторо фигурные скобки, то получится блок,
который будет рассматриZlvky dhfibeylhjhf dZd _^bguc hi_jZlhj .
Операторы ветвления
Операторы _lления позheyxl изм енить порядок uiheg_gby операторо в
программе. К операторам ветe_gby относятся услоguc оператор if и оператор u[hjZ
switch.
Услоguc hi_jZlhj if
Условный оператор if используется для раз_l\e_gby ijhp_kkZ h[jZ[hldb ^Zgguo gZ
дZ gZijZления. Он может иметь одну из форм: сокращенную или полную .
Форма сокращенного оператора if:
if (B) S;
где В – логическое ujZ`_gb_ bklbgghklv dhlhjh]h ijhеряется; S – оператор: простой
или составной.
При uiheg_gbb khdjZs_gghc nhjfu hi_jZlhjZ if сначала uqbkey_ тся ujZ`_gb_
B, затем проh^blky анализ его результата: если B истинно, то uihegy_lky оператор S;
если B ложно, то оператор S пропускается. Таким образом, с помощью сокращенной формы
оператора if можно либо uihegblv hi_jZlhj 6 eb[h ijhimklblv _]h
Фо рма полного оператора if :
if (B) S1; else S2;
где B – логическое ujZ`_gb_ bklbgghklv dhlhjh]h ijhеряется; S1, S2- оператор: простой
или составной.
При uiheg_gbb полной формы оператора if сначала uqbkey_lky значение
ujZ`_gby B, затем анализируется е го результат: если B истинно, то uihegy_lky hi_jZlhj
S1, а оператор S2 пропускается; если B ложно, то uihegy_lky оператор S2, а S1 –
пропускается. Таким образом, с помощью полной формы оператора if можно u[jZlv h^gh
из двух альтернатиguo ^_cklий проце сса обработки данных.
Рассмотрим несколько примеро aZibkb mkeh\gh]h hi_jZlhjZ if:
if (a > 0) x=y; // Сокращенная форма c простым оператором
if (++i>0) { x=y; y=2* z;} // Сокращенная форма c составным оператором
if (a > 0 || b<0) x=y; else x=z; // Полна я форма с простым оператором
if (i!= j-1) { x= 0; y= 1;} else {x=1; y:=0;} // Полная форма с составными операторами
Операторы S1 и S2 могут также яeylvky hi_jZlhjZfb if. Такие операторы называют
eh`_ggufb Ijb wlhf dexq_ое слоh else сyau\Z_lky k [eb жайшим предыдущим слоhf
if, которое еще не сyaZgh gb k h^gbf else . Рассмотрим несколько примеро Ze]hjblfh с
использоZgb_f ложенных услоguo hi_jZlhjh\ :
Пример 1. Уровни
вложенности
Пример 2. Уровни
вложенности
if (A>B)
if (C>D) X=Y;
else X=Z;
els e X=R;
if (A>B) X=Y;
else if (C>D) X=Z;
else X=R;
Пример 3. Уровни
вложенности
Пример 4 Уровни
вложенности
if (A < B)
if (C < D) X =Y;
else X = Z;
else
if (E < F) X= R;
else X = Q;
if (A< B)
if (C < D)
if (E < F) X= Q;
else X = R;
else X= Z;
else X = Y;
Замечание . Т.к. оператор if допускает наличие только одного оператора дейстby то
можно записывать его без использования блока {}, например, так:
if (x < 0) y = 0; else y=1;
Однако пр едпочтительнее и wlhf kemqZ_ klZить блок, начиная его с ноhc kljhdb Wlh
улучшает читабельность программы и значительно сокращает _jhylghklv hrb[db ijb несении
последующих изменений. В нашем случае оператор if следует записать так:
if (x < 0)
{
y = 0;
}
else
{
y=1;
}
Далее будем придержиZlvky ^Zggh]h ijZ\beZ g_ lhevdh ^ey hi_jZlhjZ L I gh b ^ey ^jm]bo
операторов.
Рассмотрим несколько примеро bkihevahания оператора if.
Пример 1. Найдем наибольшее значение из двух вещественных чисел:
static void Main()
{
Console.Write("x= ");
double x = double.Parse(Console.ReadLine());
2 1 2 1
1
2
2
1 2 3
Console.Write("y=");
double y = double.Parse(Console.ReadLine());
double max;
if (x > y )
{
max=x;
}
else
{
max=y;
}
Console.Wr iteLine("max= {0}", max);
}
Результат работы программы :
x y max
0 0 0
1 -1 1
-2 2 2
Задания .
1. Объясните , почему ^Zgghf ijbf_j_ g_ lj_[m_lky bgbpbZebaZpby i_j_f_gghc P D x .
2. Измените программу так, чтобы вычислялось наименьшее значение из двух
_s_kl\_gguo qbk_e .
Замечание . Выч ислить максимум из двух чисел можно с помощью метода Math.Max(x,y).
Пример 2. Найдем наибольшее значение из трех _s_klенных чисел:
static void Main()
{
Console.Write("x= ");
double x = double.Parse(Console.ReadLine());
Console.Write("y=");
double y = double.Parse(Console.ReadLine());
Console.Write("z=");
double z = double.Parse(Console.ReadLine());
double max;
if (x > y && x>z)
{
max=x;
}
else
{
if (y>z)
{
max=y;
}
else
{
max=z;
}
}
Console.WriteLine("max= {0}", max) ;
}
Результат работы программы :
x y z max
0 0 0 0
1 -1 2 2
-2 12 2 12
4 -1 -3 4
Задания .
1. Измените программу так, чтобы uqbkeyehkv наименьшее значение из трех
_s_kl\_gguo qbk_e .
2. Решите данную задачу используя метод Math .Min (x,y)
Оператор u[hjZ V Z L t ch
Оператор u[hjZ switch предназначен для раз_lления процесса вычислений по
нескольким напраe_gbyf NhjfZl hi_jZlhjZ :
switch ( <ujZ`_gb_ ! )
{
case <константное_ujZ`_gb_ B !
[<оператор 1>]; <оператор перехода>;
case <константное_ujZ`_g ие_2>:
[<оператор 2>]; <оператор перехода>;
...
case <константное_ujZ`_gb_ _ n>:
[<оператор n>]; <оператор перехода>;
[default: <оператор>; ]
}
Замечание . Операторы, записанные квадратных скобках, яeyxlky необязательными
элементам и операторе switch . Если они отсутстmxl то могут отсутстhать и
соот_lklующие им операторы перехода.
Выражение, стоящее за ключеuf словом switch , должно иметь арифметический,
симhevguc kljhdhый тип или тип указатель. Все константные ujZ`_gby ^h лжны иметь
разные значения, но их тип должен соiZ^Zlv k lbihf ыражения, стоящего gmljb kdh[hd
switch или приh^blvky к нему. Ключеh_ слоh case и расположенное после него
константное ujZ`_gb_ gZau\Zxl lZd`_ f_ldhc case .
Выполнение оператора начинается с uqbke_gby ujZ`_gby расположенного за
ключеuf слоhf switch . Полученный результат сраgbается с меткой case . Если
результат ujZ`_gby соот_lkl\m_l метке case , то uihegy_lky оператор, стоящий после
этой метки, за которым обязательно должен следоZl ь оператор перехода: break , goto и т.д.
В случае отсутстby оператора перехода компилятор u^Zkl сообщении об ошибке. При
использоZgbb оператора break происходит uoh^ из switch и упраe_gb_ передается
оператору, следующему за switch. Если же используется оператор goto , то упраe_gb_
передается оператору, помеченному меткой, стоящей после goto .
Замечания .
Оператор перехода goto лучше использоZlv для перехода по меткам gmljb switch , и не
использоZlv _]h ^ey \uoh^Z ba hi_jZlhjZ switch .
Для поur_gby прои зh^bl_evghklb рекомендуется размещать _lи, _jhylghklv
u[hjZ dhlhjuo y\ey_lky gZb[hevr_c [eb`_ d gZqZem <
ОПЕРАТОРЫ ЯЗЫКА C#
Формат документа: pdf
Размер документа: 0.94 Мб
Прямая ссылка будет доступна
примерно через: 45 сек.
-
Сообщить о нарушении / AbuseВсе документы на сайте взяты из открытых источников, которые размещаются пользователями. Приносим свои глубочайшие извинения, если Ваш документ был опубликован без Вашего на то согласия.