Ciclo annidato
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 52 di 93.
Puoi inserire un ciclo all'interno di un altro ciclo per creare un ciclo annidato. Il ciclo interno viene eseguito completamente per ogni iterazione del ciclo esterno.
for (i in 1..2) {
for (j in 1..3) {
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=3Quando i è 1, il ciclo interno viene eseguito tre volte (j va da 1 a 3). Poi i diventa 2 e il ciclo interno viene eseguito altre tre volte. In totale, otteniamo 2 × 3 = 6 iterazioni.
I cicli annidati vengono comunemente usati per creare schemi o lavorare con strutture simili a griglie:
for (row in 1..3) {
for (col in 1..row) {
print("*")
}
println()
}
// Risultato:
// *
// **
// ***Qui, l'intervallo del ciclo interno dipende dalla variabile del ciclo esterno, creando uno schema a triangolo. La funzione print() produce output senza andare a capo, mentre println() passa alla riga successiva dopo ogni riga.
Sfida
MedioLeggi 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 un a capo.
Per esempio, se l'input è 3, l'output dovrebbe essere:
1 2 3
2 4 6
3 6 9Se l'input è 4, l'output dovrebbe essere:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16Usa print() con uno spazio per stampare i valori sulla stessa riga e println() per passare alla riga successiva.
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 tra i valori sulla stessa riga
// Usa println() per passare alla riga successiva
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin