Menu
CoddyTech

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

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

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

val rows = 2
val cols = 3
for (i in 1..rows) {
    for (j in 1..cols) {
        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, внутренний цикл выполняется cols раз (j принимает значения от 1 до 3). Затем i становится равным 2, и внутренний цикл начинается заново: j снова принимает значения от 1 до 3. В итоге получается 2 × 3 = 6 итераций. rows и cols никогда не меняются: они лишь указывают циклам, когда остановиться.

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

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() — чтобы перейти к следующей строке.

Используй новый счётчик для каждого цикла (например, i для строк и j для столбцов) и сравнивай оба с n. Не изменяй само n: оно снова понадобится для каждой строки.

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

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

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

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

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