Kotlinのwhile文・do-while文の使い方を完全ガイド!初心者でもわかる繰り返し処理
生徒
「先生、Kotlinで同じ処理を何度も繰り返す方法ってforループだけですか?」
先生
「実はKotlinにはwhile文やdo-while文という繰り返しの仕組みもあります。forループよりも柔軟に繰り返すことができるんです。」
生徒
「どんな風に使うんですか?仕組みが全然わかりません。」
先生
「それでは、基本からわかりやすく説明していきましょう!」
1. while文とは?
Kotlin(コトリン)のwhile文は、条件が正しい間だけ繰り返し処理を続ける仕組みです。「条件が成り立つ間はずっとやってね」というイメージです。
例えば、ボールを投げ続けるときに「ボールがまだ残っている間だけ投げ続ける」というような場面で使えます。
基本の書き方は次のようになります。
while (条件) {
// 繰り返し処理
}
「条件」がtrue(正しい)の間だけ、波かっこの中の処理が繰り返されます。条件がfalse(正しくない)になったら、繰り返しは止まります。
2. while文の基本例
ここで、簡単な例として、1から5までの数字を順番に表示してみましょう。
fun main() {
var i = 1
while (i <= 5) {
println(i)
i++
}
}
このプログラムでは、iという数字を1から始めて、iが5以下の間は繰り返しprintlnで表示します。i++はiの値を1ずつ増やす、という意味です。
実行すると次のように表示されます。
1
2
3
4
5
3. do-while文とは?
Kotlinには、もうひとつ繰り返しの方法としてdo-while文があります。これは必ず1回は処理が実行されるという特徴があります。
「まず1回やってみて、それから条件を確認して続けるかどうか決める」という流れです。例えば、必ず1回はゲームをプレイしてから続けるか決めるときに使えます。
基本の書き方は次のようになります。
do {
// 1回は必ず実行される処理
} while (条件)
4. do-while文の基本例
ここでも、1から5までの数字を順番に表示する例を見てみましょう。
fun main() {
var i = 1
do {
println(i)
i++
} while (i <= 5)
}
この例では、最初に1回printlnで数字を表示してから、iが5以下かどうかを確認します。条件が正しければまた繰り返し、正しくなければやめます。
実行結果はwhile文と同じです。
1
2
3
4
5
5. while文とdo-while文の違い
ここまで学んだwhile文とdo-while文の違いを整理しましょう。
- while文: 条件が正しければ、処理を実行。条件が最初から正しくないと、1回も実行しないことがある。
- do-while文: 1回は必ず実行してから、条件を確認して続けるか決める。
例えば、ボールが最初に無いときはwhile文だと最初から繰り返さないけど、do-while文だと最初に1回投げる動作をするイメージです。
6. 繰り返し回数が決まっていないときに便利!
while文とdo-while文は、繰り返しの回数が決まっていないときにとても役立ちます。例えば、ユーザーが「やめるまで」続けたいときなどに便利です。
決まった回数を繰り返すならforループが便利ですが、ユーザーの入力や状況によって回数が変わるならwhileやdo-whileを使いましょう。
最初は戸惑うかもしれませんが、while文とdo-while文を使っていろんな繰り返し処理にチャレンジしてみてください。
まとめ
Kotlinの繰り返し処理として登場するwhile文とdo-while文は、条件を使って柔軟に処理を繰り返すための非常に重要な構文です。とくに、処理の回数があらかじめ決まっていないとき、ユーザーの入力や状況によって繰り返し回数が変化する場面では大きな力を発揮します。この記事で学んだ内容を振り返ると、まずwhile文は「条件が正しい間だけ繰り返す」という仕組みを持ち、最初の時点で条件が成り立たなければ一度も実行されない特徴があります。これは、手持ちのボールがない状態では投げる動作が始まらないのと同じイメージとして捉えると理解しやすくなります。
いっぽうでdo-while文は、まず一度処理を実行してから条件の判定を行うという点が大きな違いです。「とりあえず一回やってみてから続けるか判断する」という流れを実現するための構文で、必ず一度は実行されるという性質を持っています。ゲームの最初の1プレイを必ず実行し、その後プレイヤーが続けるかどうか選ぶような動きです。こうした違いを理解することで、プログラムの中でどちらの構文が適切か判断しやすくなり、より読みやすく意図が明確なコードを書くことにつながります。
また、実際のサンプルプログラムとして紹介したように、どちらの構文でも変数を使いながら条件の変化に合わせて値を更新し、繰り返しのたびに処理を進めるのが基本の書き方です。Kotlinでよくあるパターンとして、変数のインクリメントや条件式の工夫によって繰り返しの動作が明確になります。こうした基本を押さえることで、より大きなプログラムや複雑な繰り返し処理にも応用できるようになっていきます。とくに、入力待ちの処理やメニュー選択の処理など、ユーザーが操作を続ける限り何度も繰り返したい状況では非常に便利に使えるので、開発の現場でも頻繁に使われています。
ここでは応用例のひとつとして、while文とdo-while文を組み合わせた入力処理のサンプルも紹介しておきます。変数や条件、値の増加を意識することで、繰り返しロジックの仕組みをより深く理解できるようになります。Kotlinのようなモダンなプログラミング言語では、こうした繰り返し処理が自然に書けるため、慣れれば効率的なロジック構築が簡単に行えるようになります。
サンプルプログラム(応用)
fun main() {
var input: String
do {
println("続ける場合はyesを入力してください:")
input = readLine() ?: ""
} while (input == "yes")
println("終了します")
}
生徒
「先生、while文とdo-while文って似ているようで違うんですね。条件の確認タイミングがポイントなんですね。」
先生
「そうですね。while文は最初に条件を見ますが、do-while文はまず一度動いてから条件を確認します。この違いを理解すると、状況に合わせて使い分けられるようになりますよ。」
生徒
「確かに、ユーザー入力を受け続ける処理なんかはdo-while文の方が自然に書けそうですね。」
先生
「その通りです。繰り返しの開始条件が決まっていない場面ではdo-while文がとても役立ちます。今回のサンプルのように入力待ちの動作は特に適しています。」
生徒
「while文は最初から条件が正しくないと動かないから、ボールがないと投げられない例がすごくイメージしやすかったです!」
先生
「イメージできると理解も早いですね。今後のプログラムでも繰り返し処理を組む場面がたくさん出てきますから、この二つの違いはぜひ覚えておきましょう。」