Menu
Coddy logo textTech

Ciclo annidato

Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 49 di 86.

Un ciclo annidato è semplicemente un ciclo all'interno di un altro ciclo. Il ciclo interno completa tutte le sue iterazioni per ogni singola iterazione del ciclo esterno.

for row in 1...3 {
    for col in 1...2 {
        print("Row \(row), Col \(col)")
    }
}
// Output:
// Row 1, Col 1
// Row 1, Col 2
// Row 2, Col 1
// Row 2, Col 2
// Row 3, Col 1
// Row 3, Col 2

Per ogni valore di row, il ciclo interno viene eseguito completamente per tutti i valori di col. Quindi, con 3 iterazioni esterne e 2 iterazioni interne, il codice al loro interno viene eseguito 6 volte in totale (3 × 2).

I cicli annidati vengono comunemente usati per lavorare con strutture a griglia o per generare schemi.

Ecco un esempio che stampa un semplice rettangolo di asterischi:

for row in 1...2 {
    for col in 1...4 {
        print("*", terminator: "")
    }
    print("")  // Vai alla riga successiva
}
// Output:
// ****
// ****

terminator: "" impedisce a print di aggiungere un a capo, così gli asterischi appaiono sulla stessa riga. Al termine del ciclo interno, print("") passa alla riga successiva.

challenge icon

Sfida

Facile

Leggi due interi dall'input: rows e cols. Usa cicli annidati per stampare una griglia di numeri in cui ogni cella mostra il prodotto del numero della riga e del numero della colonna.

Riceverai i seguenti input:

  • Prima riga: numero di righe (ad es., "3")
  • Seconda riga: numero di colonne (ad es., "4")

Requisiti:

  • Usa un ciclo esterno per le righe (da 1 a rows)
  • Usa un ciclo interno per le colonne (da 1 a cols)
  • Stampa il prodotto dei numeri della riga e della colonna correnti
  • Separa i valori sulla stessa riga con uno spazio
  • Ogni riga deve essere su una riga distinta

Suggerimento: Usa terminator: " " per mantenere i valori sulla stessa riga, poi usa print("") dopo il ciclo interno per passare alla riga successiva.

Ad esempio, se rows è 3 e cols è 4, l'output dovrebbe essere:

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

Provalo tu

let rows = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: Scrivi il tuo codice qui sotto
// Usa cicli annidati per stampare una tabella delle moltiplicazioni
// Ciclo esterno: itera sulle righe (da 1 a rows)
// Ciclo interno: itera sulle colonne (da 1 a cols)
// Stampa il prodotto di row * column
// Usa print(..., terminator: " ") per mantenere i valori sulla stessa riga
// Usa print("") dopo il ciclo interno 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 Swift