
今回はプログラムを書く時に欠かせない繰り返し(ループ)処理の書き方について書きます。
最初にどう言う時に使うかを簡単に説明したいと思います。
例えば、1〜100までの数字をprint()で表示したい時、下記のコードのように1〜100までprint()しないといけません。
そんな事やってられませんのでここで登場するのがwhile文やfor文です。
今回はwhile文の書き方を説明します!
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
.
.
.
.
.
print(98)
print(99)
print(100)
とりあえず下記コードを見てみましょう。
先ほど例にあげた1〜100までの数字をprint()する場合、while文を使うとたったこれだけのコードで実現が可能になります。
実行結果はコピペしてPlaygroundで試してみて下さい。
var num = 1
while num <= 100 {
print(num)
num += 1
}
コードの説明ですが、
・1行目は変数ですね。
・3行目がwhile文になっていて、変数numが100以下の場合、次の処理を繰り返してねって言う書き方をしています。
4行目から実行して欲しい処理を書いています。
・4行目でnumをprint()してます。
・5行目でnumに1足しています。
大事なポイントは5行目です。
ここでnumに1を足す事によってnumの中身が2に変更されます!
その状態で、もう一度3行目に戻り条件式に一致するかチェックして、一致したら同じように4行目、5行目の処理をします。
今回はnumの中身が101になってやっと条件式に一致しなくなるのでそこでループが終了します。
while文と同じような書き方でちょっと違うのがrepeat whileです。
早速ですが下記コードを見てみましょう。
上がwhile文で下がrepeat whileです。
この二つのコードの実行結果はどちらも0~4までの数字がprint()されます。
var num = 0
while num < 5 {
print(num)
num += 1
}
repeat {
print(num)
num += 1
} while num < 5
では何が違うのかを見ていきましょう。
と言っても違いは一つだけです。
条件チェックを先にするか、後にするかだけです。
ではここで変数numの初期値を10にした時のコードを見てみます。
var num = 10
while num < 5 {
print(num)
num += 1
}
//結果 先に条件をチェックしているので何もprint()されない
repeat {
print(num)
num += 1
} while num < 5
// 結果 後で条件をチェックしているので10がprinta()される。
while文の方はまず条件をチェックしているので、条件に一致しないから何も処理をする事なくループが終了します。
repeat whileの方はとりあえず一回処理をしてから条件チェックをしているので10が出力されます。
その後でnum < 5をチェックして、一致しないのでループが終了しています。
今回はwhile文について書きましたが次回はfor文について書きたいと思います。
ループ処理は配列や辞書の値を取り出す時に使う事が多いので、配列や辞書の記事を書く時に詳しく説明できればと思っています。
ありがとうございました。
コメントを残す