Оператор if/else
Оператор 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)