break, continue ed etichette
Controllo del flusso nei cicli e break con etichetta
break, continue ed etichette è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Fondamenti del controllo dei cicli
Go offre tre parole chiave per controllare l'esecuzione dei cicli:
break: esce dal ciclo o dallo switch correntecontinue: passa all'iterazione successivagoto: salta a un'istruzione con etichetta, ed è usato raramente
Le etichette estendono il funzionamento di break e continue ai cicli esterni.
break in un ciclo
break esce immediatamente dall'istruzione for, switch o select più interna:
for i := 0; i < 100; i++ {
if i*i > 50 {
break
}
fmt.Println(i)
}continue
continue salta il resto del corpo del ciclo corrente e passa all'istruzione post, o al controllo della condizione:
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // skip even numbers
}
fmt.Println(i) // prints 1,3,5,7,9
}break con etichetta
Un'etichetta prima di un ciclo for consente di uscirne da un ciclo interno:
search:
for i, row := range grid {
for j, cell := range row {
if cell == target {
fmt.Printf("found at %d,%d\n", i, j)
break search
}
}
}continue con etichetta
continue con etichetta passa all'iterazione successiva del ciclo esterno etichettato:
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if j == 1 {
continue outer
}
fmt.Printf("%d,%d\n", i, j)
}
}Quando utilizzare le etichette
Le etichette sono appropriate quando:
- Deve uscire da un ciclo annidato da una posizione molto interna
- L'estrazione di una funzione sarebbe troppo verbosa
Le etichette sono poco comuni in Go: se si trova a utilizzarle spesso, consideri di ristrutturare il codice con funzioni o canali.
goto (raro)
Go dispone di goto per saltare a un'istruzione con etichetta. È consentito all'interno della stessa funzione e non può saltare oltre dichiarazioni di variabili:
- Casi d'uso: codice generato e cicli compatti per la gestione degli errori
- Lo eviti nel codice scritto manualmente e preferisca un controllo del flusso strutturato
break in select
All'interno di un'istruzione select, break esce dal select, non dal ciclo for esterno. Utilizzi un break con etichetta per uscire dal ciclo esterno:
loop:
for {
select {
case msg := <-ch:
handle(msg)
case <-done:
break loop
}
}Evitare il nesting profondo
I cicli profondamente annidati sono difficili da leggere. Prima di aggiungere un break con etichetta, si chieda:
- Posso estrarre il ciclo interno in una funzione di supporto?
- Posso utilizzare un canale o una slice per semplificare l'iterazione?
- È possibile ridurre il nesting al livello esterno con ritorni anticipati?
Schema pratico: ricerca con break
Uno schema comune consiste nel cercare in una raccolta e uscire con break quando l'elemento viene trovato:
func contains(slice []string, target string) bool {
for _, v := range slice {
if v == target {
return true // prefer return over break+flag
}
}
return false
}Verifica rapida
Come si esce da un ciclo esterno dall'interno di un ciclo interno in Go?
Riepilogo: break, continue ed etichette
Gestisca efficacemente il flusso dei cicli in Go:
breakesce dal ciclo o dallo switch correntecontinuepassa all'iterazione successiva- Le etichette consentono a
break/continuedi agire su un ciclo esterno gotoesiste, ma viene usato raramente nel Go idiomatico- All'interno di select, utilizzi un break con etichetta per uscire da un ciclo for esterno
Prossimo corso: funzioni e valori restituiti multipli.
Domande Frequenti
La lezione «break, continue ed etichette» è gratuita?
Sì — il testo completo di «break, continue ed etichette» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «break, continue ed etichette»?
Controllo del flusso nei cicli e break con etichetta Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «break, continue ed etichette»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Istruzioni if ed espressioni di inizializzazione
- Il ciclo for: tutti i modelli
- Istruzioni switch in Go
- break, continue ed etichette