Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
生徒
「Swiftで条件を満たす間だけ何かを繰り返すには、どう書けばいいんですか?」
先生
「そんなときはwhile文やrepeat while文を使いますよ。」
生徒
「その2つって、どう違うんですか?」
先生
「とても良いポイントですね。それぞれの使い方と違いを丁寧に説明しますね!」
1. while文とは?
while文(ワイルぶん)は、条件がtrue(真)である間だけ、何度でも同じ処理を繰り返す制御構文です。条件が満たされていないと、最初から一度も実行されないこともあります。
たとえば、「ある数字が5になるまでカウントアップする」ような処理に向いています。
2. Swiftのwhile文の基本構文
次のコードは、1から5まで数字を表示する例です。
var count = 1
while count <= 5 {
print(count)
count += 1
}
countが5以下の間だけprintが実行され、1ずつ増えていきます。
3. repeat while文とは?
repeat while文は、while文と似ていますが、必ず最初に1回は処理を実行します。その後で条件をチェックします。
つまり、条件がfalse(偽)でも、最初の1回だけは必ず実行されるのが特徴です。
4. repeat while文の基本構文
次のコードでは、最初に1回だけ処理が行われ、その後で条件を確認します。
var count = 1
repeat {
print(count)
count += 1
} while count <= 5
実行結果はwhile文と同じように1〜5が表示されますが、条件の評価タイミングが違います。
5. 条件が最初からfalseだった場合の違い
次のように、最初から条件が満たされない場合はどうなるでしょうか?
while文の例:
var number = 10
while number < 5 {
print(number)
number += 1
}
この場合、numberは10なので、最初のnumber < 5がfalseになります。よって、何も表示されません。
repeat while文の例:
var number = 10
repeat {
print(number)
number += 1
} while number < 5
こちらは、numberが10でも、まずprint(number)が1回実行されてから条件を確認するため、「10」が表示されます。
6. while文とrepeat while文の違いまとめ
違いを表で見てみましょう。
| 項目 | while文 | repeat while文 |
|---|---|---|
| 処理の順番 | 条件を先にチェック | 処理を先に実行 |
| 最初の1回 | 条件がfalseなら実行されない |
必ず1回は実行される |
| 使いどころ | 最初から条件に基づいて動作したいとき | 最低1回は処理したいとき |
7. 実生活の例えで理解しよう
たとえば、冷蔵庫の中を確認して、飲み物がある限り1本ずつ取り出すような動作はwhile文が合います。先に「あるかどうか」を確認するからです。
一方、必ず1回は冷蔵庫を開けて中をチェックするような動作はrepeat while文のイメージに近いです。まず行動してから確認します。
8. 繰り返し処理を使う場面
while文やrepeat while文は、ユーザーがボタンを押すまで待つ処理や、正しい入力がされるまで繰り返すときなどに便利です。
ゲームのループ処理、センサーの監視、ログイン情報のチェックなど、現実のさまざまな場面で活用されています。
まとめ
Swiftの繰り返し処理として登場するwhile文とrepeat while文について、ここまで順を追って整理してきましたが、あらためて見直すと、この二つはとてもよく似ているようでいて、実際の使い方にははっきりした違いがあります。特に、条件を先に確認するか、それとも先に処理を実行してから条件を見るかという違いは、実践の場面では意外なほど大きく影響します。while文は「条件が成立していなければ一度も動かない」という特徴があり、repeat while文は「最低一回は動く」という性質があります。この仕組みが分かると、入力チェックやゲームループ、画面更新、データ監視など、さまざまな処理を設計するときに選択肢が広がっていきます。
また、Swiftにおける繰り返し処理は単にループを実行するだけのものではなく、変数の変化を追いながらプログラム全体の流れを理解するためのきっかけにもなります。初めてプログラムを書くときには、コードがどのように動いているのか把握するのが難しいものですが、繰り返し処理を利用すると、処理の流れが段階的に明らかになり、考え方が整理されていきます。特にwhile文は、条件が変化しているかどうかや、変数の扱い方が適切かどうかのチェックに役立ちますし、repeat while文は、最低一回の処理が必要な場合にとても分かりやすい挙動を示します。
さらに、繰り返し処理では「条件式の書き方」が理解の鍵になります。条件が変化しないままループが続くと、終わらない処理になってしまうことがあり、これは初心者がよく経験するつまずきの一つです。しかし、変数を適切に更新し、ループを抜け出す条件を正しく設定できるようになると、プログラムは安定した動作を見せてくれるようになります。特にwhile文では、条件式に沿って動作し続けるため、ループの終了条件をきちんと意識しながら設計する習慣が身につきます。
一方、repeat while文は最初の一回を必ず実行したい場面で非常に便利です。例えば、ユーザーが正しい値を入力するまで繰り返す処理を実装したいときや、計算処理を一度試してから次のステップに進むような場面に向いています。実行されるタイミングが明確なので、プログラムの動きを追いやすく、処理の可視性が高まります。また、繰り返し処理のすべてがwhile系で表現できるわけではないため、追加の条件によって「一回だけ必ず実行し、以降は条件で分岐する」といった柔軟な設計ができるのもrepeat while文の魅力です。
下記に、実際のアプリ開発で使われそうなサンプルコードを一つ紹介します。ユーザーにパスワードを入力してもらい、正しく入力されるまで繰り返す処理です。こうした処理はwhile文でも作れますが、一度は必ず入力を促したいので、repeat while文が適しています。
サンプルコード:正しい入力がされるまで繰り返す処理
var password: String? = nil
repeat {
print("パスワードを入力してください")
password = readLine()
} while password != "swift123"
print("ログインに成功しました!")
このような繰り返し処理の書き方は、ユーザー入力のチェックだけでなく、センサーの監視やリアルタイム更新などにも応用できます。プログラムは、繰り返しという仕組みを取り入れることで、より「動いている」感覚が強くなり、開発者としての感覚も磨かれていきます。今回の学びを通して、繰り返し処理がただの反復ではなく、流れの制御そのものを作り上げる重要な要素であることが理解できるはずです。
最後に、while文とrepeat while文の違いを自分の言葉で説明できるようになると、Swiftの制御構文を扱う力がぐっと強くなります。どちらを使うべきか迷ったときは「条件を先に見るのか、それとも先に動きたいのか」という視点で考えると、正しい選択ができるようになっていきます。
生徒
「while文とrepeat while文って、最初はすごく似て見えたんですけど、動きが全然違うんですね!」
先生
「そうなんです。処理の始まり方が違うだけで、使いどころも大きく変わるんですよ。最低一回は必ず動かしたいときにはrepeat while文が便利ですね。」
生徒
「たしかに、ユーザー入力を必ず促したいときなんかはrepeat while文のほうがわかりやすい気がします。」
先生
「その感覚がとても大事です。while文とrepeat while文を使い分けられるようになると、繰り返し処理を組み立てる力がぐっと上がりますよ。」
生徒
「今回の学びで、繰り返し処理の仕組みがかなり理解できました!もっと応用してみたいです。」