制御構文とは
- 条件による分岐処理
- くりかえしを行う処理
ここでは制御構文の中でもくり返しを行う処理について扱っていきます。
くり返しとは
print(“こんにちは”)を100回くりかえしたい!
と思ったときに、print(“こんにちは”)print(“こんにちは”)print(“こんにちは”)print(“こんにちは”)…と100回書いても成立します。しかし、とても見難くなってしまいます。
これをもっと行数を少なく、ギュッとスマートにまとめた書き方がfor文です。
for文
for 定数名 in ①...②{
処理
}
- ①〜②で指定した回数、{}内の処理がくり返されます。
- ①と②は整数が入ります。
- ②の数字は①よりも大きくないといけません。
- forのあとは定数名が入ります。変数ではないためあとから変更はできません。
- ②の回数がおわると処理が終了します。
for文にも2種類あります
- 処理の中で定数を使ったfor文
- 処理の中で定数を使わないfor文
処理の中で定数を使ったfor文
for num in 1...10{
print(num)
}
中ではこういうことが行われている
let num = 1{
print(num)
}
let num = 2{
print(num)
}
let num = 3{
print(num)
}
...10まで
- for numの裏ではlet numがおこなわれています。
- 1…10なので10回くり返されます。
- let num = 1 {print(num)} ()内のnumには1が代入されます。
- print(num)で1が出力されます。
- {}内の処理が終わると1…10の次の数字、2が始まります。 let num = 2 {print(num)}
- print(num)で2が出力されます。
- {}内の処理が終わり、1…10の次の数字、3が始まります。 let num = 3 {print(num)}
- この結果、1から10までの数字がprint(num)されます。
処理の中で定数を使わないfor文
HTML
for i in 1...10{
print("Hello")
}
このようなコードを書いた時に、次のような黄色のワーニングメッセージ⚠️が出てきます。
これはiを_に置き換えますか?という意味で、処理の中で定数を扱わなかった時に出現します。
今までは、{}内の処理はprint(num)で()の部分に定数を使用していましたが、こちらはprint(“Hello”)で1…10までの回数を指定しただけなので、{}内の処理では定数を使用していません。
このような場合に、forのあとのiは_(アンダーバー)に置き換えて使用します。
ワーニングメッセージを「Fix」すれば大丈夫です。
for _ in 1...10{
print("Hello")
}
forのあとのiが_(アンダーバー)に置き換わりました。
10.制御構文3(ネスト)