Menu
Coddy logo textTech

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

Часть раздела Основы путешествия по Kotlin на Coddy. Урок 52 из 93.

Вы можете поместить один цикл внутрь другого, чтобы создать вложенный цикл. Внутренний цикл полностью выполняется на каждой итерации внешнего цикла.

for (i in 1..2) {
    for (j in 1..3) {
        println("i=$i, j=$j")
    }
}
// Вывод:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3

Когда i равно 1, внутренний цикл выполняется три раза (j принимает значения от 1 до 3). Затем i становится равным 2, и внутренний цикл выполняется ещё три раза. Итого получается 2 × 3 = 6 итераций.

Вложенные циклы часто используются для создания узоров или работы со структурами, похожими на сетку:

for (row in 1..3) {
    for (col in 1..row) {
        print("*")
    }
    println()
}
// Вывод:
// *
// **
// ***

Здесь диапазон внутреннего цикла зависит от переменной внешнего цикла, создавая треугольный узор. Функция print() выводит данные без перевода строки, а println() после каждой строки переходит на следующую.

challenge icon

Задание

Средне

Считайте из входных данных целое число n. Используйте вложенные циклы, чтобы вывести таблицу умножения для чисел от 1 до n.

Для каждой строки i от 1 до n выведите произведения i * 1, i * 2, ..., i * n, разделённые пробелами, а затем символ новой строки.

Например, если на вход подаётся 3, вывод должен быть таким:

1 2 3
2 4 6
3 6 9

Если на вход подаётся 4, вывод должен быть таким:

1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16

Используйте print() с пробелом, чтобы вывести значения в одной строке, и println(), чтобы перейти к следующей строке.

Попробуйте сами

fun main() {
    // Прочитать ввод
    val n = readLine()!!.toInt()
    
    // TODO: Напишите ваш код ниже
    // Используйте вложенные циклы для вывода таблицы умножения
    // Используйте print() с пробелом для значений в одной строке
    // Используйте println() для перехода к следующей строке
    
}
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Песочница Kotlin