repeat în Kotlin

Rulează un bloc de cod de un anumit număr de ori; în bloc, it este numărul repetării, de la 0.

Sintaxă
inline fun repeat(times: Int, action: (Int) -> Unit)

Ce face repeat

repeat(n) { ... } este cea mai scurtă buclă din Kotlin: rulează blocul de n ori. În bloc, it este indicele repetării curente, de la 0 la n - 1. Dacă n este 0 sau negativ, blocul nu rulează deloc.

Este potrivită când știi doar de câte ori trebuie făcut ceva. Când ai nevoie de pas, de numărătoare inversă sau de break, folosește for (i in 1..n): într-un repeat nu poți folosi break sau continue, iar return simplu iese din toată funcția.

Parametri

Parametru Descriere
times: Int De câte ori rulează blocul.
action: (Int) -> Unit Blocul de cod; primește indicele repetării (de la 0) ca it.

Ce returnează

Nimic (Unit).

Exemple

Exemplul 1: Repetare simplă și indicele it

fun main() {
    repeat(3) {
        println("Bună ziua!")
    }
    repeat(4) {
        println("Pasul ${it + 1} din 4")
    }
}

Rezultat

Bună ziua!
Bună ziua!
Bună ziua!
Pasul 1 din 4
Pasul 2 din 4
Pasul 3 din 4
Pasul 4 din 4

Exemplul 2: Desenarea unui triunghi

Două repeat imbricate: cel exterior dă rândul, cel interior pune stelele. Parametrii au nume ca să nu se confunde.

fun main() {
    repeat(4) { rand ->
        repeat(rand + 1) { print("*") }
        println()
    }
}

Rezultat

*
**
***
****

Greșeli frecvente

  • Crezi că it începe de la 1. Începe de la 0; pentru numărătoare de la 1 scrie it + 1.
  • Încerci să folosești break în repeat. Nu compilează, pentru că blocul este o lambda; folosește o buclă for sau while.
  • Imbrici două repeat și folosești it în cel interior crezând că e al celui exterior. Dă nume parametrilor: repeat(3) { rand -> ... }.

Comenzi înrudite

  • Int.until: Construiesc șiruri de numere pentru bucle: until fără capătul de sus, downTo descrescător, step cu pas.
  • println: Afișează o valoare pe ecran: println trece apoi la rând nou, print rămâne pe același rând.