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 conclua todas as suas iterações. A instrução break permite interromper 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] 4O loop foi configurado para ser executado de 1 a 10, mas, quando i chegou a 5, a instrução break interrompeu o loop completamente. Observe que 5 nunca foi impresso, porque break sai imediatamente.
Isso é especialmente útil com loops while ao procurar algo:
num <- 1
while (TRUE) {
if (num * num > 20) {
break
}
num <- num + 1
}
print(num)Saída:
[1] 5Aqui, while (TRUE) normalmente seria executado para sempre, mas break o interrompe assim que encontramos o primeiro número cujo quadrado excede 20. Esse padrão é comum quando você precisa pesquisar até que uma condição seja satisfeita.
Desafio
FácilLeia 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 divisível por 3 e 7.
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 deverá 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 esse é o primeiro número divisível por 3 e 7 (21 = 3 × 7).
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 loop for de 1 até limit
# Imprima cada número antes de verificar a condição
# Interrompa quando encontrar um número divisível por 3 e por 7
# Dica: Use o operador %% para verificar a divisibilidade
# Imprima "Loop ended" após o loop
print("Loop ended")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
4Operadores - Parte 2
Operadores lógicos (AND, OR)Operadores lógicos - Parte 2 (NOT)Revisão - Lógica simplesLógica vetorizada - Parte 1Lógica vetorizada - Parte 27Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços
Laço ForLaço WhileBreakNext (Continue)Revisão - FatorialGeração de Sequências (seq, :)Laços AninhadosRevisão - Entrada Dinâmica3Operadores - Parte 1
Operadores aritméticosDivisão inteira e móduloOperadores de atribuiçãoRevisão - Matemática simplesOperadores de comparação6Entrada e saída básicas
Imprimir saídacat para saídaSaída com variáveisLendo entrada com readline()Noções básicas de conversão de tiposRecapitulação - Calculadora de idadeRecapitulação - Verdadeiro ou falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetros PadrãoPratique por conta própria: Compilador de R online