Swiftは他の言語と違って少々書き方が変わっていたりするので、他の言語の経験があると違和感を覚える方もいるかと思います。

JavaScriptに似ているような気もしますね。

セミコロン付けなくて良かったり、条件分岐などに()付けなくて良かったり・・・と。
Objective-Cよりは分かりやすいと思います…。

準備

テスト用プロジェクトを生成して、準備をします。
プロジェクトの作り方などは以下を参考にして作ってみてください!
【iPhoneアプリ開発入門】Xcode操作だけでHello, Worldを表示

基本文法

基本文法はプログラミングをする上で、沢山使っていきます。
1つ1つ理解をして、焦らず覚えていきましょう!

コンソール出力

これはデバッグ等に使う事ができます。
ゲームで使うとするならば、

  • プレイヤーやエネミーの座標
  • 変数の中身
  • 処理の通過
  • その他

上記のようなものを確認するときによく使います。
また、コンソール出力のみでゲームを作る事も可能です。
(わざわざSwiftを使ってやることではありませんが・・・)

変数

変数は var を使って宣言します。
変数は値を上書きしたりすることが可能です。
また、varの型は自動で推測する機能が備わっています。

上記を実行すると 20 が表示されます。
また、型を指定して宣言することもできます。

定数

定数は変数と違って値を上書きすることはできません。
決まった値を格納しておくことによく使います。

上記のようなことをするとエラーになります。

配列

配列はブランケット(これ->[])を使用します。
ちなみに、空の配列も作れます。

連想配列

連想配列はこのようにして作れます。
また、空の連想配列も作れます。

if文の条件分岐

if文の条件はtBool型でなければいけません。
Int型や文字列型等はif文の条件として直接使用することはできないようです。
また、() をつけて宣言することも可能です。

こちらの方が見慣れていて、気持ちがいいですね。

switch文の条件分岐

他の言語をやったことがある方であれば「え?これ値1の時、全部のcase文を通らない?」となるかと思います。
Swiftでは、breakを書かなくてもちゃんとbreakの処理をしてくれているようです。
逆に、break無しの処理をしたい場合の書き方もあります。

fallthrough を処理の中に入れることで、次のcase文に移ることが可能です。
多様すると、可読性が悪くなるのが難点ですね。

for文

for分には書き方が2つあり、パターン1は他の言語でもよく使われているfor分です。
パターン2は他言語で言うforeachになります。使う場合はこの様にして使う事が出来ます。

while文

while文には2つ書き方があります。条件を判定するタイミングが違うので、用途によって使い分けることになると思います。
個人的には ループの最初に条件判定 の方が使いやすく感じますね。

おまけ

上記の構文を使って、超簡単な自動で戦ってくれるRPGでも作ってみましょう!

実行するとこんな感じになります。
Swiftで超簡単自動戦闘RPG
今回紹介した内容から抜き出して作った超簡単RPGになります。

正直言うと、上記のソースコードは良くありません。

悪い部分としては、
・ランダム要素がないので、今だと絶対にプレイヤーが勝つ
・同じような処理を何度も書いている
・whileの中に処理を全部書いてしまっている

次回の章で、どこが悪いのか、というのがわかるかと思います。

記事をご閲覧して頂き、ありがとうございました!
またどこかでお会いしましょう…。

参考サイト
swift言語を学ぶ/制御構文

あわせて読みたい記事