Menu
CoddyTech

Ciclo annidato

Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 52 di 93.

Puoi inserire un ciclo dentro un altro ciclo per creare un ciclo annidato. Il ciclo interno viene eseguito completamente a ogni iterazione del ciclo esterno.

val rows = 2
val cols = 3
for (i in 1..rows) {
    for (j in 1..cols) {
        println("i=$i, j=$j")
    }
}
// Output:
// i=1, j=1
// i=1, j=2
// i=1, j=3
// i=2, j=1
// i=2, j=2
// i=2, j=3

Quando i è 1, il ciclo interno viene eseguito cols volte (j va da 1 a 3). Poi i diventa 2 e il ciclo interno ricomincia, con j che va di nuovo da 1 a 3. Questo ci dà un totale di 2 × 3 = 6 iterazioni. rows e cols non cambiano mai: indicano solo ai cicli quando fermarsi.

I cicli annidati vengono comunemente usati per creare motivi o lavorare con strutture simili a griglie:

for (row in 1..3) {
    for (col in 1..row) {
        print("*")
    }
    println()
}
// Output:
// *
// **
// ***

Qui, l'intervallo del ciclo interno dipende dalla variabile del ciclo esterno, creando uno schema a triangolo. La funzione print() stampa senza andare a capo, mentre println() passa alla riga successiva dopo ogni riga.

challenge icon

Sfida

Medio

Leggi un intero n dall'input. Usa cicli annidati per stampare una tabella di moltiplicazione per i numeri da 1 a n.

Per ogni riga i da 1 a n, stampa i prodotti i * 1, i * 2, ..., i * n separati da spazi, seguiti da una nuova riga.

Per esempio, se l'input è 3, l'output dovrebbe essere:

1 2 3
2 4 6
3 6 9

Se l'input è 4, l'output dovrebbe essere:

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

Usa print() con uno spazio per visualizzare i valori sulla stessa riga e println() per passare alla riga successiva.

Usa un nuovo contatore per ogni ciclo (per esempio i per le righe e j per le colonne) e confrontali entrambi con n. Non modificare n: ti serve di nuovo per ogni riga.

Provalo tu

fun main() {
    // Leggi l'input
    val n = readLine()!!.toInt()
    
    // TODO: Scrivi il tuo codice qui sotto
    // Usa cicli annidati per stampare la tabellina
    // Usa print() con uno spazio per i valori sulla stessa riga
    // Usa println() per passare alla riga successiva
    
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Kotlin