Упражнение. Реализация условного оператора
- 7 мин
Предположим, вам нужно быстро определить, имеет ли клиент право на рекламную скидку. Сведения о промоушене указывают на то, что если стоимость покупки превышает 1000 евро, покупка имеет право на 100 евро скидки. Если сумма покупки составляет 1000 евро или меньше, покупка имеет право на 50 евро скидки.
Хотя вы, безусловно, можете использовать if ... elseif ... else
конструкцию ветвления для выражения этого бизнес-правила, использование условного оператора для оценки соответствия условиям для получения рекламной скидки может оказаться лучшим выбором. Условный оператор имеет компактный формат, позволяющий сэкономить несколько строк кода и, возможно, делающий намерение более понятным.
Что такое условный оператор?
Условный оператор?:
вычисляет логическое выражение и возвращает один из двух результатов в зависимости от того, имеет ли логическое выражение значение true или false.
Условный оператор обычно называется тернарным условным оператором.
Ниже приведена основная форма:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
На минуту рассмотрим, как применить условный оператор к рекламному сценарию скидки. Ваша цель — отобразить сообщение клиенту, показывающее процент скидки. Сумма их скидки будет зависеть от того, потратили ли они более 1000 евро на их покупку.
Добавление кода, использующего условный оператор
Убедитесь, что в Visual Studio Code открыт пустой файл Program.cs. При необходимости откройте Visual Studio Code и выполните следующие действия, чтобы подготовить файл Program.cs в редакторе:
- В меню "Файл" выберите "Открыть папку".
- Используйте диалоговое окно "Открыть папку", чтобы перейти к ней, а затем открыть папку CsharpProjects .
- На панели обозревателя Visual Studio Code выберите Program.cs.
- В меню выбора Visual Studio Code нажмите кнопку "Выбрать все", а затем нажмите клавишу DELETE.
Введите следующий код в редактор Visual Studio Code.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");
В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
Перед созданием или выполнением кода необходимо сохранить файл Program.cs.
На панели обозревателя откройте терминал в папке TestProject, щелкните правой кнопкой мыши TestProject и выберите "Открыть в интегрированном терминале".
Панель терминала, отображающая командную строку, должна быть открыта. Командная строка должна отобразить путь к папке TestProject.
В командной строке терминала, чтобы запустить код, введите dotnet run и нажмите Enter.
При выполнении этого кода вы должны увидеть следующие выходные данные.
Discount: 100
Использование встроенного оператора условного оператора
Этот код можно сжимать еще больше, устраняя временную переменную discount
.
Обновите код в редакторе Visual Studio Code следующим образом:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");
В меню "Файл Visual Studio Code" нажмите кнопку "Сохранить".
В командной строке терминала, чтобы запустить код, введите dotnet run и нажмите Enter.
Обратите внимание, что выходные данные одинаковы.
Минуту, чтобы проверить обновленную
Console.WriteLine()
инструкцию.Обратите внимание, что необходимо упаковать всю инструкцию условного оператора в скобки. Круглые скобки гарантируют, что среда выполнения понимает намерение, которое заключается в отображении условного результата, а не результата оценки условия (saleAmount > 1000).
Примечание.
Хотя этот конкретный пример компактен и показывает, что возможно, это немного сложнее читать. Не всегда рекомендуется объединять строки кода, особенно если это негативно влияет на общую удобочитаемость кода. Часто это решение является субъективным.
Кратко
Следует помнить следующие факты об условном операторе:
- Условный оператор можно использовать для уменьшения размера кода, но следует убедиться, что результирующий код легко удобочитается.
- Условный оператор можно использовать, если необходимо вернуть значение, основанное на двоичном условии. Код возвращает первый параметр, когда условие оценивается как true, и он возвращает второй параметр, когда условие оценивается как false.