Catch Questionsアカデミー第6回
Swift5.1 Xcode11.1 Playground
-配列の使い方を勉強
-Repeat whileでループ構文を理解
-StringのArrayならfor inの方が実は使える
「以下は動画のハイライトです。」
今回はSwiftの配列(Array)の意味を理解します。
Swift以外のプログラミング言語でも言えることなのですが、配列はループ構文の非常に相性の良い概念ですので一緒に覚えることをオススメします。
本動画では最初にPlaygroundで文法を確認します。次の動画ではXcodeで実装し、実際に動くアプリの構築まで進みます。
まずは配列の概念についてです。
配列とは同じような種類のものが入れ物に入っていることをイメージしてみてください。
ここではちょうどダンボールの中に果物がいくつか入っているようなイメージのものを作ってみます。
Swiftでは配列に使うダンボールとなる記号として[ ]というものを使います。
配列の変数はstrListとします。
var strList = ["バナナ", "パイナップル", "オレンジ", "メロン",
"アップル"]
こうした段ボールの中からは番号を指定することで特定の果物を引き出すことができます。
以下のように[ ]の中に番号を指定してください。
print(strList[1])とするとパイナップルを引き出すことができます。
ここで注意が必要なのはプログラム的に最初の番号は1ではなく0です。番号を0にすることでバナナを引き出すことができます。
また段ボールの中の果物も以下のようにすることで数えることができます。
strList.count
配列など変数の後に.countをつけるとその中の要素の数を数えてくれるものでこれは色々な局面で使えるので是非覚えておきましょう。
次にループ構文に関するお話です。
Swiftでは{ } までのスクリプトを所定の回数繰り返す動きをします。
回数指定のためカウンタと一緒に使うことが多いです。
ここではカウンタをnとしてループ構文の一例をお見せします。
Swiftでは少し特殊なRepeatというものを使います。
var n = 0
repeat {
print(n)
n = 1 + n
} while n < 4
ここで少し特殊な表記としてはn = 1 + n というものがあります。数学的にはありえない表記ですね。ただ、プログラム的には左のものに右のものを上書きするという意味合いがあります。これによって変数nは新しく1をプラスされた数字が代入されたという意味合いになります。
もうちょっと簡単な書き方としては以下にしてもOKです。
n += 1
ちなみに n -= 1とするとnに1をマイナスした値が代入されるようになります。
最後のwhileはnがどれくらいの値になるまで { } 内のスクリプトを繰り返すかを意味します。
実はSwiftではこのカウンタというものを書き間違えてしまうことが多いのでカウンタを使わないもう少し簡単なループ構文の書き方が存在します。
for str in strList {
print(str)
}
ループ構文と言ったらforと言うように他の言語では実はforの方が一般的です。Swiftもバージョン2ぐらいまでforしかありませんでした。突如Repeatという構文が現れた時はビックリしましたね。
こちらのスクリプトではinの直後に配列を設定してforの直後には任意の文字列を描きます。そうすると{ } 内でその任意の文字列が配列の中の要素となって順々に表示してくれます。
最初はカウンタがないと動きを理解しにくいかと思いますのであえてカウンタをiとして出力してみます。
var i = 0
for str in strList {
print(str, i)
i += 1
}
この出力で何となく動きはわかったでしょうか?
次回はXcodeでこの構文を使って簡単なアプリを作ります。
ソースコードは YouTubeのコメント欄 に記載します。