Laço while
Parte da seção Fundamentos do Journey de GDScript da Coddy. Lição 44 de 92.
Um loop for é executado uma vez para cada número em um intervalo. Um loop while continua sendo executado enquanto uma condição for true:
var count := 3
while count > 0:
print(count)
count -= 1
print("Go!")3
2
1
Go!A condição é verificada antes de cada iteração. Quando count se torna 0, count > 0 é false, então o loop para e o programa continua após ele. Se a condição for false desde o início, o bloco nunca será executado.
O bloco precisa alterar algo de que a condição dependa. Aqui, count -= 1 aproxima count de 0. Sem isso, a condição continuaria sendo true e o loop nunca terminaria.
Use while quando você não souber de antemão de quantas iterações precisa. Por exemplo, isto encontra a menor potência de 2 que é maior que 27:
var number := 27
var power_of_two := 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)power_of_two dobra a cada iteração: 2, 4, 8, 16, 32. Em 32, power_of_two <= number é false, então o programa imprime 32.
Desafio
FácilO programa lê um número decimal em number.
Use um loop while para dividir number por 2 enquanto ele for maior ou igual a 3.5. Em seguida, imprima o resultado, que é o primeiro valor menor que 3.5.
Por exemplo, para a entrada 15, os valores são 15, 7.5, 3.75 e 1.875, então o programa imprime:
1.875Se a entrada já for menor que 3.5, imprima-a sem alterações. Não use um loop for.
Experimente você mesmo
extends Node
func _ready():
var number := float(OS.read_string_from_stdin())
# Divida number pela metade enquanto seu valor for maior ou igual a 3.5; depois, imprima-o
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 1
Operadores aritméticosDivisão inteiraOperador móduloAtalhos aritméticosRevisão - Matemática básicaOperadores de comparação7Entrada e Saída Básicas
SaídaSaída com VariáveisFormatação de StringsEntradaConversão de TipoRevisão - Até 120Revisão - Verdadeiro ou Falso10Funções
Declare uma funçãoArgumentosRetornoTipos de retornoRevisão - Função SigmaRevisão - Função de validaçãoValores padrão13Percorrendo Arrays
Percorrendo elementosPercorrendo com índicesPercorrendo strings — Parte 1Percorrendo strings — Parte 216Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Revisão - Lógica simplesOperadores lógicos Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Variáveis - Parte 2
Declaração de tipoInferência de tipoConstantesRevisão - Inicialização de variáveisConversão de tipo6Tomada de decisões
Instrução ifIf - ElseRevisão - Calculadora simplesIf - Else aninhadoInstrução match9Laços de repetição
Laço forLaço whileInterromperContinuarRevisão - FatorialA função rangeLaço aninhadoRevisão - Entrada dinâmicaPratique por conta própria: Compilador de GDScript online