# Циклы

Иногда вам нужно повторить группу команд несколько раз. Вы можете просто скопировать это выражение. Что, если вы захотите повторить это сто тысяч раз? Copy-Paste в этом случае не практичен.

К счастью, для нас, Kotlin предоставляет несколько специальных инструкций для многократного повторения блоков кода. Эти операторы известны как **циклы**. Они полезны, когда дело доходит до повторения нескольких утверждений.

## Цикл повтора

Чтобы использовать простейший цикл, напишите `repeat(n)` и последовательность команд в фигурных скобках `{...}`. `n` - это целое число, которое определяет, сколько раз эти команды будут повторяться.

```kotlin
repeat(n) {
    // команды
}
```

Например, приведенная ниже программа выводит `Привет` три раза:

```kotlin
fun main() {
    repeat(3) {
        println("Привет")
    }
}
```

Вывод:

```
Привет
Привет
Привет
```

?> Если `n` равно нулю или отрицательному числу, Kotlin проигнорирует цикл. Если `n` равно единице, инструкции будут выполняться только один раз.

## Чтение и обработка данных в цикле

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

Взгляните на этот пример. Приведенная ниже программа считывает числа из стандартного ввода и вычисляет их сумму. Первое число не является частью суммы, оно определяет длину входной последовательности.

```kotlin
fun main() {
    val n = readln().toInt()
    var sum = 0

    repeat(n) {
        val next = readln().toInt()
        sum += next
    }

    println(sum)
}
```

Этот код считывает длину числовой последовательности и присваивает ее переменной `n`. После этого он создаёт переменную для хранения общей суммы. Код считывает следующее число и добавляет его к сумме ровно `n` раз. Затем цикл останавливается, и программа выводит общую сумму.

Вот пример входных чисел:

```
5
40
15
30
25
50
```

Вывод:

```
160
```

## Заключение

Циклы полезны, когда вам нужно повторить оператор в вашем коде. В этом разделе мы обсуждали цикл `repeat()`. Это очень простой инструмент. Определите количество выполнений, затем оператор в фигурных скобках, и вперед! На следующем уроке мы узнаем о продвинутых циклах и о том, как их можно применить к более сложным задачам.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://andreypfau.gitbook.io/learn-kotlin/control-flow/control-structures/repeating-blocks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
