while文はある条件が真である限り、コードのブロックを繰り返し実行することができる制御構造です。他の言語に多く採用されているwhile文は、Goにはありません。whileループに関してもfor文で書くことができます。
以下は、Goにおけるwhile文の構文です。
for condition {
// 実行されるコード
}
conditionコンポーネントは、ループの終了条件を指定します。ループは条件が偽になるまで実行されます。
while文を使って、1から10までの数字を表示する例です。
i := 1
for i <= 10 {
fmt.Println(i)
i++
}
また、break文を使ってループを早期に終了させたり、continue文を使って現在の反復をスキップして次のループに移行させることも可能です。以下は、1から10までの数字を表示し、数字が5になったらループを早めに抜けるという例です。
i := 1
for i <= 10 {
if i == 5 {
break
}
fmt.Println(i)
i++
}
for文では、変数iをfor文の中で定義しループごとに加算することで制御していましたが、今回は単純にi <= 10という真偽値で評価されるような式のみを記述し、変数iの加算はforループの中で行われています。
無限ループとは、永遠に続くループのことで、while文の条件が常に真である場合に作成されます。
無限ループは、システムの監視やユーザーの入力待ちなど、あるタスクを無限に繰り返す必要がある場合に、コンピュータプログラムでよく使用されます。しかし、終了条件を適切に設定しないと、プログラムが永久に実行され続けることになるので注意が必要です。
for {
fmt.Println("This is an infinite loop.")
}
無限ループを終了させるには、break文を使ってすぐにループを終了させるか、return文を使ってループを終了させて関数から復帰させる方法があります。