Тернарный оператор (?) относится к числу самых примечательных в C#.
Он представляет собой условный оператор и часто используется вместо определенных видов конструкций if-then-else.
Оператор унаследован из языка С++ без изменений, как очень эффективная конструкция. Если в коде программы (кроме комментариев) встречается символ «?», то это может быть только тернарный оператор, или синтаксическая ошибка.
Ниже приведена общая форма этого оператора:
Выражение1 ? Выражение2 : ВыражениеЗ;
Здесь Выражение1 должно относиться к типу bool, а Выражение2 и ВыражениеЗ — к одному и тому же типу.
Обратите внимание на применение двоеточия и его местоположение в операторе ?.
Значение выражения ? определяется следующим образом.
Сначала вычисляется Выражение1.
Если оно истинно, то вычисляется Выражение2, а полученный результат определяет значение всего выражения ? в целом.
Если же Выражение1 оказывается ложным, то вычисляется ВыражениеЗ, и его значение становится общим для всего выражения ?:
int b, c;
c = -4;
b = c >=0 ? c : c*c; // b = 16
Присваивать переменной результат выполнения оператора ? совсем не обязательно. Например, значение, которое дает оператор ?, можно использовать в качестве аргумента при вызове метода.
А если все выражения в операторе ? относятся к типу bool, то такой оператор может заменить собой условное выражение в цикле или операторе if.
Пример использования тернарного оператора:
using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int result; // Реализуем функцию модуля числа for (int i = 4; i >= -5; i--) { result = i >= 0 ? i : -i; Console.Write("{0}\t", result); } Console.WriteLine("\n"); // Выбор четных чисел for (int i = 0; i < 10; i++) { if (i % 2 == 0 ? true : false) Console.Write("{0}\t", i); } Console.ReadLine(); } } }
Результат:
Перейдем к рассмотрению более традиционных условных операторов в языке C#.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
конкретно не понял разбор четности чисел…здесь тернарность вообще зачем нужна была?
Писец, а попроще примеры можно? типа 2+2 =4 если не 4 а 5 то так иначе другая процедура!. . . . . БЛ…… .со своими заумными математическими функциями, бл…… них…… не понятно!!!!!!
до этого писал адекватный человек, Здесь писал Ур…д жопоногий!!!
только из-за таких долбо…..бов все бросают обучение на 0.9% обучения!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Пётр, давайте без эмоций и следите за лексикой и уважайте других пользователей ресурса.
Если что-то не ясно — пишите конкретно «что».