Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 70
- Предыдущая
- 70/642
- Следующая
{ Console.WriteLine("Number is: {0} ", i); Console.WriteLine("Number plus 1 is: {0} ", i+1)}for(int i = 0; i < 4; i++) Console.WriteLine("Number is: {0} ", i); Console.WriteLine("Number plus 1 is: {0} ", i+1)Если вам повезет (как в этом примере), то дополнительная строка кода вызовет ошибку на этапе компиляции, поскольку переменная
iforРабота с конструкциями принятия решений и операциями отношения/равенства
Теперь, когда вы умеете многократно выполнять блок операторов, давайте рассмотрим следующую связанную концепцию — управление потоком выполнения программы. Для изменения потока выполнения программы на основе разнообразных обстоятельств в C# определены две простые конструкции:
• оператор
if/else• оператор
switchНа заметку! В версии C# 7 выражение
isswitchif/elseswitchisИспользование оператора if/else
Первым мы рассмотрим оператор
if/elseif/else-10Использование операций отношения и равенства
Обычно для получения литерального булевского значения в операторах
if/else
И снова программисты на С и C++ должны помнить о том, что старые трюки с проверкой условия, которое включает значение, не равное нулю, в языке C# работать не будут. Пусть необходимо проверить, содержит ли текущая строка более нуля символов. У вас может возникнуть соблазн написать такой код:
static void IfElseExample(){ // This is illegal, given that Length returns an int, not a bool. string stringData = "My textual data"; if(stringData.Length) { // Строка длиннее 0 символов Console.WriteLine("string is greater than 0 characters"); } else { // Строка не длиннее 0 символов Console.WriteLine("string is not greater than 0 characters"); } Console.WriteLine();}Если вы хотите использовать свойство
String.Length// Допустимо, т.к. условие возвращает true или false.If (stringData.Length > 0){ Console.WriteLine("string is greater than 0 characters");}Использование операторов if/else и сопоставления с образцом (нововведение в версии 7.0)
В версии C# 7.0 появилась возможность применять в операторах
if/elseisМетод
IfElsePatternMatching()stringintstatic void IfElsePatternMatching(){ Console.WriteLine("===If Else Pattern Matching ===/n"); object testItem1 = 123; object testItem2 = "Hello"; if (testItem1 is string myStringValue1) { Console.WriteLine($"{myStringValue1} is a string"); // testIteml имеет тип string } if (testItem1 is int myValue1) { Console.WriteLine($"{myValue1} is an int"); // testIteml имеет тип int } if (testItem2 is string myStringValue2) { Console.WriteLine($"{myStringValue2} is a string");- Предыдущая
- 70/642
- Следующая
