Вложенный цикл
Часть раздела Основы путешествия по C# на Coddy. Урок 46 из 70.
Вложенный цикл — это просто цикл внутри другого цикла. Внутренний цикл выполнит все свои итерации за одну итерацию внешнего цикла.
Хорошая аналогия — часы: для каждого часа (внешний цикл) минутная стрелка (внутренний цикл) должна пройти полный 60-минутный цикл.
Пример вложенного цикла:
int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
for (int y = 0; y < cols; y++) {
Console.WriteLine(x + " " + y);
}
}
// Это выведет:
// 0 0
// 0 1
// 1 0
// 1 1Внешний цикл (x) выполняется rows раз, и для каждого из этих раз внутренний цикл (y) выполняется cols раз, то есть тело внутреннего цикла выполняется всего 2 × 2 = 4 раза. У каждого цикла свой счётчик: y снова начинает с 0 каждый раз, когда выполняется внешний цикл, а rows и cols остаются неизменными и только указывают циклам, когда нужно остановиться.
При работе со вложенными циклами вам также может понадобиться Console.Write(). В отличие от Console.WriteLine(), который выводит текст и переходит на новую строку, Console.Write() выводит текст без добавления символа новой строки в конце. Это позволяет формировать вывод в одной строке:
for (int y = 0; y < 4; y++) {
Console.Write("* ");
}
Console.WriteLine();
// Это выведет:
// * * * * Здесь Console.Write() продолжает выводить текст в той же строке, а Console.WriteLine() в конце переходит на следующую строку.
Задание
НовичокНапиши программу, которая выводит прямоугольник из звёздочек (*) заданной ширины и высоты.
Ввод: два целых числа: width и height
Например:
Если width = 5 и height = 3, вывод должен быть таким:
*****
*****
*****Если width = 4 и height = 6, вывод должен быть таким:
****
****
****
****
****
****Используй новый счётчик для каждого цикла (например, i для строк и j для звёздочек в строке) и сравнивай его с height или width. Не изменяй сами height и width: для каждой строки снова нужна width.
Попробуйте сами
using System;
public class Program {
public static void Main(string[] args) {
int width = int.Parse(Console.ReadLine());
int height = int.Parse(Console.ReadLine());
// Напишите свой код ниже
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксные инкремент и декрементСокращённая запись арифметических операций7Основы ввода-вывода
Базовый выводИнтерполяция строкЧтение вводаРазборПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Операторы сравненияЛогические операторы, часть 1Логические операторы, часть 2Повторение — простая логикаЛогические операторы, часть 33Переменные. Часть 2
VarКонстантыСоглашения об именованииПовторение: инициализация переменныхПреобразование типов6Принятие решений
Оператор ifif-elseОператор switchТернарный операторПовторение: if-elseВложенный if-elseПотренируйтесь самостоятельно: Онлайн-компилятор C#