0Pricing
Go Academy · Lezione

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 corrente
  • continue: passa all'iterazione successiva
  • goto: 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:

  • break esce dal ciclo o dallo switch corrente
  • continue passa all'iterazione successiva
  • Le etichette consentono a break/continue di agire su un ciclo esterno
  • goto esiste, 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

  1. Istruzioni if ed espressioni di inizializzazione
  2. Il ciclo for: tutti i modelli
  3. Istruzioni switch in Go
  4. break, continue ed etichette
← Torna a Go Academy