Вложенные циклы
Часть раздела Основы путешествия по Rust на Coddy. Урок 41 из 75.
Вложенный цикл — это просто цикл внутри другого цикла. Внутренний цикл выполнит все свои итерации за каждую отдельную итерацию внешнего цикла. Хорошей аналогией здесь служат часы: для каждого часа (внешний цикл) минутная стрелка (внутренний цикл) должна пройти полный 60-минутный цикл.
Пример вложенного цикла:
let rows = 2;
let cols = 2;
for x in 0..rows {
for y in 0..cols {
println!("{} {}", x, y);
}
}
// Это выведет:
// 0 0
// 0 1
// 1 0
// 1 1Внешний цикл (x) выполняется rows раз, и каждый раз внутренний цикл (y) выполняется cols раз. У каждого цикла свой счётчик: y каждый раз снова начинается с 0 при запуске внешнего цикла, а rows и cols остаются неизменными и лишь указывают циклам, когда нужно остановиться.
Задание
НовичокНапиши программу, которая выводит прямоугольник из звёздочек (*) заданной ширины и высоты.
Ввод: два целых числа: width и height (стартовый код уже считывает их).
Например:
Если width = 5 и height = 3, вывод должен быть таким:
*****
*****
*****Если width = 4 и height = 6, вывод должен быть таким:
****
****
****
****
****
****Используй новый счётчик для каждого цикла (например, i для строк и j для звёздочек в строке) и сравнивай его с height или width. Не изменяй сами height и width: для каждой строки снова нужна width.
Попробуйте сами
use std::io;
fn main() {
let mut width_input = String::new();
let mut height_input = String::new();
io::stdin().read_line(&mut width_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
let width: i32 = width_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
// Напишите свой код ниже
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор Rust