Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 70
{
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)
Если вам повезет (как в этом примере), то дополнительная строка кода вызовет ошибку на этапе компиляции, поскольку переменная
i
for
Работа с конструкциями принятия решений и операциями отношения/равенства
Теперь, когда вы умеете многократно выполнять блок операторов, давайте рассмотрим следующую связанную концепцию — управление потоком выполнения программы. Для изменения потока выполнения программы на основе разнообразных обстоятельств в C# определены две простые конструкции:
• оператор
if/else
• оператор
switch
На заметку! В версии C# 7 выражение
is
switch
if/else
switch
is
Использование оператора if/else
Первым мы рассмотрим оператор
if/else
if/else
-1
0
Использование операций отношения и равенства
Обычно для получения литерального булевского значения в операторах
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/else
is
Метод
IfElsePatternMatching()
string
int
static 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");