Оператор if/else

We use cookies. Read the Privacy and Cookie Policy

Оператор if/else

В отличие от C и C++, оператор if/else в C# может работать только с булевыми выражениями, а не с произвольными значениями -1, 0. Поэтому в операторах if/else обычно используются операции C#, показанные в табл. 3.6. чтобы получить буквальные булевы значения.

Таблица 3.6. Операции сравнения в C#

Операция сравнения Пример использования Описание ==  if (age == 30) Возвращает true (истина) только в том случае, когда выражении одинаковы != if("Foo"!= myStr) Возвращает true (истина) только в том случае, когда выражения различны ‹ › ‹= ›= if(bonus‹2000) if(bonus›2000) if(bonus‹=2000) if(bonus›=2000) Возвращает true (истина) только в том случае, когда выражение А соответственно меньше, больше, меньше или равно, больше или равно выражению В

Программистам, использующим C и C++, следует обратить внимание на то, что их привычные приемы по проверке условий "на равенство нулю" в C# работать не будут. Например, вы хотите выяснить, будет ли данная строка длиннее пустой строки. Может возникнуть искушение написать следующее.

// В C# это недопустимо, поскольку Length возвращает int, а не bool.

string thoughtOfThеDay = "Старую coбaку новым трюкам научить МОЖНО";

if (thoughtOfTheDay.Length) {

 …

}

В данном случае для использования cвойства String.Length нужно изменить условие так, как показано ниже.

// Это допустимо, так как результатом будет true или false.

if (0 != thoughtOfTheDay.Length)

Чтобы обеспечить более сложную проверку, оператор if может содержать сложные выражения и другие операторы, Синтаксис C# в данном случае идентичен C(++) и Java (и не слишком отличается от Visual Basic). Для построения сложных выражений C# имеет вполне отвечающий ожиданиям набор условных операций, описания которых предлагаются в табл. 3.7.

Таблица 3.7. Условные операции в C#

Операция Пример Описание && if ((age == 30)&& (name == "Fred")) Условная операция AND (И) || if ((age == 30) || (name == "Fred")) Условная операция OR (ИЛИ) ! if (!myBool) Условная операция NOT (HE)