Menu
CoddyTech

Вложенные циклы

Часть раздела Основы путешествия по 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 остаются неизменными и лишь указывают циклам, когда нужно остановиться.

challenge icon

Задание

Новичок

Напиши программу, которая выводит прямоугольник из звёздочек (*) заданной ширины и высоты.

Ввод: два целых числа: 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();
    // Напишите свой код ниже

}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Rust