Laço While
Parte da seção Fundamentos do Journey de R da Coddy — lição 39 de 78.
Enquanto um loop for itera através de uma sequência predefinida, um loop while continua executando enquanto uma condição permanecer TRUE. Isso é útil quando você não sabe antecipadamente quantas vezes precisa repetir algo.
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}Saída:
[1] 1
[1] 2
[1] 3O loop verifica a condição count <= 3 antes de cada iteração. Quando count se torna 4, a condição é FALSE, e o loop para.
Importante: Você deve atualizar a variável dentro do loop. Sem count <- count + 1, a condição seria sempre TRUE, criando um loop infinito que nunca termina.
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)Saída:
[1] 15Este exemplo soma os números de 1 a 5, resultando em 15. O loop while é ideal quando o ponto de parada depende de uma condição em vez de uma sequência fixa.
Desafio
FácilLeia um número n da entrada. Use um loop while para calcular e imprimir a soma de todos os números de 1 até n.
Comece com uma variável para rastrear seu total acumulado e outra variável como seu contador. Continue adicionando ao total enquanto seu contador for menor ou igual a n, incrementando o contador a cada iteração.
Após a conclusão do loop, imprima a soma final usando print().
Por exemplo, se a entrada for 5, a saída deve ser:
[1] 15Isso ocorre porque 1 + 2 + 3 + 4 + 5 = 15.
Folha de consulta
Um loop while executa enquanto uma condição permanecer TRUE:
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}O loop verifica a condição antes de cada iteração. Quando a condição se torna FALSE, o loop para.
Importante: Sempre atualize a variável dentro do loop para evitar loops infinitos:
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total) # Saída: [1] 15Loops while são ideais quando o ponto de parada depende de uma condição em vez de uma sequência fixa.
Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# Inicializar variáveis
total <- 0
counter <- 1
# TODO: Escreva seu loop while abaixo para calcular a soma de 1 a n
# Imprimir o resultado
print(total)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)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
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 de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico 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âmetro Padrão