Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
If (B) S1; else S2;
где B – логическое или арифметическое выражение, истинность которого проверяется; S1, S2 – оператор: простой или составной. При выполнении полной формы оператора if сначала вычисляется выражение B, затем анализируется его результат: если B истинно, то выполняется оператор S1, а оператор S2 пропускается; если B ложно, то выполняется оператор S2, а S1 – пропускается. Таким образом, с помощью полной формы оператора if можно выбрать одно из двух альтернативных действий процесса обработки данных. Операторы S1 и S2 могут также являться операторами if. Такие операторы называют вложенными. При этом ключевое слово else связывается с ближайшим предыдущим словом if, которое еще не связано ни с одним else. Рассмотрим пример программы, использующей вложенные условные операторы. Пример: Дана мишень. Подсчитать количество очков после выстрела по данной мишени.
Оператор выбора Оператор выбора switch предназначен для разветвления процесса вычислений по нескольким направлениям. Формат оператора: switch (< выражение>) { case < константное_выражение_1>: [< оператор 1> ]; < оператор перехода>; case < константное_выражение_2>: [< оператор 2> ]; < оператор перехода>; ... case < константное_выражение_n>: [< оператор n> ]; < оператор перехода>; [default: < оператор>; ] } Выражение, записанное в квадратных скобках, является необязательным элементом в операторе switch. Если оно отсутствует, то может отсутствовать и оператор перехода. Выражение, стоящее за ключевым словом switch, должно иметь арифметический, символьный, строковый тип или тип указатель. Все константные выражения должны иметь разные значения, но их тип должен совпадать с типом выражения, стоящим после switch или приводиться к нему. Ключевое слово case и расположенное после него константное выражение называют также меткой case. Выполнение оператора начинается с вычисления выражения, расположенного за ключевым словом switch. Полученный результат сравнивается с меткой case. Если результат выражения соответствует метке case, то выполняется оператор, стоящий после этой метки, за которым обязательно должен следовать оператор перехода: break, goto и т.д. При использовании оператора break происходит выход из switch и управление передается оператору, следующему за switch. Если же используется оператор goto, то управление передается оператору, помеченному меткой, стоящей после goto. Пример. По заданному виду арифметической операции (сложение, вычитание, умножение и деление) и двум операндам, вывести на экран результат применения данной операции к операндам. static void Main() { Console.Write(" OPER= "); char oper=char.Parse(Console.ReadLine()); bool ok=true; Console.Write(" A= "); int a=int.Parse(Console.ReadLine()); Console.Write(" B= "); int b=int.Parse(Console.ReadLine()); float res=0; switch (oper) { case '+': res = a + b; break; //1 case '-': res = a - b; break; case '*': res = a * b; break; case ': ': if (b! = 0) { res = (float)a / b; break; } else goto default; default: ok = false; break; } if(ok) Console.WriteLine(" {0}{1}{2}={3}", a, oper, b, res); else Console.WriteLine(" error"); } Результат: oper x y rez + 4 5 9 : 4 0 error % 4 3 error Если необходимо, чтобы для разных меток выполнялось одно и тоже действие, то метки перечисляются через двоеточие. Например: switch (oper) { case '+': res = a + b; break; case '-': res = a - b; break; case '*': res = a * b; break; case '/': case ': ': if (b! = 0) { res = (float)a / b; break; } else goto default; default: ok = false; break; }
|