Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Инструкции и циклы C#
В этом руководстве описано, как писать код C#, который проверяет переменные и изменяет путь выполнения на основе этих переменных. Вы пишете код C# и видите результаты компиляции и выполнения кода. В этом руководстве содержится ряд уроков, в котором рассматриваются конструкции ветвления и циклирования в C#. Эти уроки учат вас основам языка C#.
Подсказка
Если блок фрагмента кода включает кнопку "Выполнить", эта кнопка открывает интерактивное окно или заменяет существующий код в интерактивном окне. Если фрагмент не содержит кнопку "Выполнить", можно скопировать код и добавить его в текущее интерактивное окно.
Выполните следующий код в интерактивном окне. Выберите Выполнить:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Измените объявление b таким образом, чтобы сумма была меньше 10:
int b = 3;
Снова нажмите кнопку "Выполнить ". Так как ответ меньше 10, ничего не печатается. Условие, которое вы тестируете, ложно. У вас нет кода для выполнения, потому что вы написали только одну из возможных ветвей для оператора if: истинную ветвь.
Подсказка
При изучении C# (или любого языка программирования) при написании кода возникают ошибки. Компилятор находит эти ошибки и сообщает вам. Если выходные данные содержат сообщения об ошибках, внимательно изучите пример кода и код в интерактивном окне, чтобы узнать, что нужно исправить. Это упражнение поможет вам узнать структуру кода C#.
В этом первом примере показаны возможности if и логических типов.
Логическое значение — это переменная, которая может иметь одно из двух значений: true или false. C# определяет специальный тип bool для логических переменных. Инструкция if проверяет значение bool. Если значение равно true, выполняется инструкция, следующая за if. В противном случае это будет пропущено.
Этот процесс проверки условий и выполнения инструкций на основе этих условий является мощным. Давайте исследуем больше.
Сделать так, чтобы if и else работали вместе.
Чтобы выполнить другой код в истинных и ложных ветвях, создайте else ветвь, которая выполняется при условии false. Попробуйте выполнить следующий код:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
Инструкция, следующая за ключевым словом else, выполняется только в том случае, если тестируемое false условие. Объединение if и else с логическими условиями обеспечивает всю необходимую мощь.
Это важно
Отступ под инструкциями if и else предназначен для человеческого восприятия. Язык C# не обрабатывает отступы или пробелы как значительные. Инструкция, следующая за ключевым словом if , else выполняется на основе условия. Все примеры в этом руководстве следуют обычной практике отступов строк в зависимости от потока выполнения операторов.
Так как отступ не является значительным, необходимо использовать { и }, чтобы указать, когда требуется, чтобы несколько операторов были частью блока условного выполнения. Программисты C# обычно используют эти фигурные скобки для всех if предложений и else предложений. Следующий пример совпадает с тем, что вы создали. Попробуйте.
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Подсказка
В остальной части этого руководства все примеры кода включают фигурные скобки, следуя общепринятым практикам.
Вы можете протестировать более сложные условия:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
Символ == проверяет равенство. Использование == отличает проверку на равенство от присваивания, которое вы видели ранее в a = 5.
Элемент && представляет «и». Это означает, что оба условия должны быть true для выполнения инструкции в истинной ветви. В этих примерах также показано, что в каждой условной ветви может быть несколько операторов, при условии, что они заключены в { и }.
Можно также использовать || для представления "или".
if ((a + b + c > 10) || (a == b))
Измените значения a, b, и c, и переключитесь между && и ||, чтобы исследовать. Вы получите больше понимания того, как операторы && и || работают.
Использование циклов для повторения операций
Еще одна важная концепция создания больших программ — циклы. Циклы используются для повторения инструкций, которые требуется выполнить несколько раз. Попробуйте использовать этот код в интерактивном окне:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
Оператор while проверяет условие и выполняет оператор, следующий за while. Он повторяет проверку условия и выполняет эти инструкции до тех пор, пока условие не станет ложным.
В этом примере есть еще один новый оператор. После ++ переменной counter идет оператор инкремента. Он добавляет 1 к значению счетчика и сохраняет это значение в переменной счетчика.
Это важно
Убедитесь, что while условие цикла переключается на false в процессе выполнения кода. В противном случае создается бесконечный цикл , в котором программа никогда не заканчивается. Давайте не будем показывать это, потому что движок, который выполняет ваш код, превышает время ожидания, и вы не видите результатов работы вашей программы.
Цикл while проверяет условие перед выполнением кода после while. Цикл do ... while сначала выполняет код, а затем проверяет условие. Выглядит следующим образом:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Этот do цикл и более ранний while цикл работают одинаково.
Давайте перейдем к одному последнему оператору цикла.
Работа с циклом for
Еще одна распространенная инструкция цикла в коде C# — это цикл for. Попробуйте использовать этот код в интерактивном окне:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Предыдущий for цикл выполняет ту же работу, что и while цикл и do цикл, которые вы уже использовали. В for инструкции есть три части, которые управляют тем, как она работает:
- Первая часть — это инициализатор для:
int counter = 0;объявляет, чтоcounter— это переменная цикла и задает для нее начальное значение0. - Средняя часть является условием:
counter < 10объявляет, что этотforцикл продолжает выполняться до тех пор, пока значение счетчика меньше 10. - Окончательная часть — это итератор:
counter++указывает, как изменить переменную цикла после выполнения блока, следующегоforза инструкцией. Здесь указывается, чтоcounterувеличивается на 1 при каждом выполнении блока.
Поэкспериментируйте с этими условиями самостоятельно. Попробуйте выполнить каждое из следующих изменений:
- Измените инициализатор, чтобы начать с другого значения.
- Измените условие, чтобы остановиться на другом значении.
Когда вы закончите, давайте перейдем к написанию кода самостоятельно, чтобы использовать то, что вы узнали.
Существует еще один оператор цикла, который не рассматривается в этом руководстве: оператор foreach. Оператор foreach повторяет свою инструкцию для каждого элемента в последовательности элементов. Чаще всего это используется с коллекциями. Это описано в следующем руководстве.
Создание вложенных циклов
Цикл while, do или for может быть вложен в другой цикл, чтобы создать матрицу, сочетая каждый элемент внешнего цикла с каждым элементом внутреннего цикла. Давайте создадим набор буквенно-цифровых пар для представления строк и столбцов.
Один for цикл может создать строки:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Другой цикл может создать столбцы:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Вы можете вложить один цикл внутри другого, чтобы сформировать пары:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Вы увидите, что внешний цикл увеличивается один раз для каждого полного выполнения внутреннего цикла. Поменяйте местами вложенные строки и столбцы и посмотрите изменения.
Объединение ветвей и циклов
Теперь, когда вы видели инструкцию if и циклические конструкции в языке C#, попробуйте написать код на C# для нахождения суммы всех целых чисел от 1 до 20, делящихся на 3. Ниже приведены несколько подсказок:
- Оператор
%дает остаток от операции деления. - Оператор
ifопределяет условие для проверки, должно ли число быть включено в сумму. - Цикл
forможет помочь повторить ряд шагов для всех чисел 1–20.
Попробуйте самостоятельно. Затем проверьте, как вы сделали. В качестве подсказки, правильный ответ должен быть 63.
Ты придумала что-то вроде этого?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
Вы завершили интерактивное руководство по "ветвям и циклам". Вы можете выбрать ссылку коллекции списков , чтобы начать следующий интерактивный учебник, или посетить сайт .NET, чтобы скачать пакет SDK для .NET , создать проект на компьютере и сохранить код. В разделе "Дальнейшие шаги" вы возвращаетесь к данным руководствам.
Дополнительные сведения об этих понятиях см. в следующих статьях: