Menu
Coddy logo textTech

break

Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 40 di 78.

A volte devi uscire da un ciclo in anticipo, prima che completi tutte le sue iterazioni. L'istruzione break ti permette di interrompere immediatamente un ciclo quando si verifica una condizione specifica.

for (i in 1:10) {
  if (i == 5) {
    break
  }
  print(i)
}

Output:

[1] 1
[1] 2
[1] 3
[1] 4

Il ciclo era impostato per essere eseguito da 1 a 10, ma quando i ha raggiunto 5, l'istruzione break ha interrotto completamente il ciclo. Nota che 5 non è mai stato stampato perché break esce immediatamente.

Questo è particolarmente utile con i cicli while quando cerchi qualcosa:

num <- 1
while (TRUE) {
  if (num * num > 20) {
    break
  }
  num <- num + 1
}
print(num)

Output:

[1] 5

Qui, while (TRUE) normalmente continuerebbe all’infinito, ma break lo interrompe non appena troviamo il primo numero il cui quadrato supera 20. Questo schema è comune quando devi cercare finché una condizione non è soddisfatta.

challenge icon

Sfida

Facile

Leggi un numero limit dall'input. Usa un ciclo for per iterare da 1 a limit, ma interrompi il ciclo in anticipo usando break quando incontri il primo numero divisibile sia per 3 che per 7.

Stampa ogni numero prima di verificare la condizione. Quando trovi un numero divisibile sia per 3 che per 7, stampa quel numero, quindi esci dal ciclo.

Al termine del ciclo, stampa "Loop ended" usando print().

Ad esempio, se l'input è 30, l'output dovrebbe essere:

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] "Loop ended"

Il ciclo si ferma a 21 perché è il primo numero divisibile sia per 3 che per 7 (21 = 3 × 7).

Provalo tu

# Leggi l'input
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))

# TODO: Scrivi il tuo codice qui sotto
# Usa un ciclo for da 1 a limit
# Stampa ogni numero prima di verificare la condizione
# Interrompi il ciclo quando trovi un numero divisibile sia per 3 sia per 7
# Suggerimento: usa l'operatore %% per verificare la divisibilità


# Stampa "Loop ended" dopo il ciclo
print("Loop ended")
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: Compilatore R online