Menu
Coddy logo textTech

Break

Parte da seção Fundamentos do Journey de R da Coddy — lição 40 de 78.

Às vezes, você precisa sair de um loop antecipadamente, antes que ele termine todas as suas iterações. A instrução break permite que você pare um loop imediatamente quando uma condição específica é atendida.

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

Saída:

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

O loop foi configurado para rodar de 1 a 10, mas quando i atingiu 5, a instrução break interrompeu o loop inteiramente. Observe que o 5 nunca foi impresso porque o break sai imediatamente.

Isso é especialmente útil com loops while ao procurar por algo:

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

Saída:

[1] 5

Aqui, while (TRUE) normalmente rodaria para sempre, mas break o interrompe assim que encontramos o primeiro número cujo quadrado excede 20. Este padrão é comum quando você precisa pesquisar até que uma condição seja satisfeita.

challenge icon

Desafio

Fácil

Leia um número limit da entrada. Use um loop for para iterar de 1 até limit, mas interrompa o loop antecipadamente usando break quando encontrar o primeiro número que seja divisível por 3 e 7 ao mesmo tempo.

Imprima cada número antes de verificar a condição. Quando encontrar um número divisível por 3 e 7, imprima esse número e, em seguida, saia do loop.

Após o término do loop, imprima "Loop ended" usando print().

Por exemplo, se a entrada for 30, a saída deve ser:

[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"

O loop para em 21 porque é o primeiro número divisível por 3 e 7 (21 = 3 × 7).

Folha de consulta

A instrução break interrompe imediatamente um loop quando uma condição específica é atendida:

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

Saída:

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

O loop termina quando i atinge 5. O valor 5 nunca é impresso porque o break sai imediatamente.

Usando break com while (TRUE) para busca:

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

Saída:

[1] 5

Este padrão encontra o primeiro número cujo quadrado excede 20 e, em seguida, interrompe o loop infinito.

Experimente você mesmo

# Ler entrada
con <- file("stdin", "r")
limit <- as.integer(suppressWarnings(readLines(con, n = 1)))

# TODO: Escreva seu código abaixo
# Use um laço for de 1 até limit
# Imprima cada número antes de verificar a condição
# Interrompa (break) quando encontrar um número divisível por 3 e 7 ao mesmo tempo
# Dica: Use o operador %% para verificar a divisibilidade


# Imprimir "Loop ended" após o laço
print("Loop ended")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos