Menu
CoddyTech

whileループ

CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 44/92。

forループは、範囲内の数値ごとに1回実行されます。条件がtrueである限り、whileループは実行され続けます:

var count := 3
while count > 0:
	print(count)
	count -= 1
print("Go!")
3
2
1
Go!

条件は各反復の前にチェックされます。count が 0 になると、count > 0 は false となるため、ループが停止し、プログラムはその後に続きます。最初から条件が false の場合、ブロックは一度も実行されません。

ブロックは、条件が依存する何かを変化させる必要があります。ここでは、count -= 1によってcountが0に近づきます。これがなければ、条件はtrueのままとなり、ループは決して終了しません。

必要な反復回数が事前にわからない場合は、whileを使います。たとえば、これは27より大きい最小の2のべき乗を求めます。

var number := 27
var power_of_two := 1
while power_of_two <= number:
	power_of_two *= 2
print(power_of_two)

power_of_twoは反復ごとに2倍になります:2、4、8、16、32。32のとき、power_of_two <= numberはfalseなので、プログラムは32を出力します。

challenge icon

チャレンジ

簡単

プログラムは10進数を1つ読み込み、numberに格納します。

numberが3.5以上である間、whileループを使ってnumberを2で割ります。その後、結果を出力します。これは3.5より小さい最初の値です。

たとえば、入力が15の場合、値は15、7.5、3.75、1.875となるため、プログラムは次のように出力します。

1.875

入力がすでに3.5より小さい場合は、そのまま出力します。forループは使わないでください。

自分で試してみよう

extends Node

func _ready():
	var number := float(OS.read_string_from_stdin())
	# numberが3.5以上の間は半分にし、最後に表示する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ