Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

O 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.875

Se 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
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

Pratique por conta própria: Compilador de GDScript online