【Swift入門】Swift3.x版でのfor文、for-in文の使い方まとめ

Swiftは3.x系になってから、for文の従来のC言語スタイルの書き方が削除されました。

この記事ではfor文、for-in文について、

・Swift3での変更点
・for文、for-in文の基本的な使い方

などの基本的な解説から、

・配列の要素分ループする方法
・Dictionary(ディクショナリ)型のループ
・String型のループ

などの応用的な使い方についても解説していきます。

ここでは、Swift3.0からの新しいfor文、for-in文の書き方についてまとめていますので、ぜひ参考にしてくださいね!

※この記事ではSwift3.1を使用しています。

for文、for-in文の基本的な使い方

for文とは条件が真の場合に処理を繰り返すループ処理となります。

主に指定した回数分ループで処理を繰り返したときに使用します。

Swiftではfor文では、Swift3.0でC言語のスタイルの記述方式が削除されました。

そのため、以下のようなfor文はSwift3.0より使用できなくなります。

Swfit2.0のfor文:

同様の記述を行うにはfor-in文を使用する必要があります。

昇順ループ

先述した従来のようにC言語スタイルのようにfor文を記述する場合はfor-in文を使用して、以下のように記述します。

実行結果:

今までの標準的なfor文の書き方に慣れていると、馴染みが薄い書き方となってしまいますが、「for i in 0..<5 」の書き方で同様の処理が可能であることを覚えておきましょう!

降順ループ

降順でループするにはreversedを使用します。

実行結果:

配列の要素分ループする

配列の要素数分ループするには、配列に対してcountを使用してループするのがSwift2までの書き方でした。

しかし、さきほど説明したように以下ようなC言語スタイルでの記述方式が削除されたため、countを使用することはできません。

Swift3.0でこのサンプルプログラムを実行すると、以下のようなエラーとなります。

そのため、配列もfor-in文を使用して以下のように記述します。

実行結果:

また、enumeratedstrideを使用して配列をループする方法もあります。

enumeratedで配列のループ

enumeratedを使用すると配列のindexを取得することができます。

書き方:

enumeratedを指定すれば、index番号に0からの番号が入り、値にはindex番号に対応した値が入ります。

実行結果:

strideで配列のループ

for-in文で配列をループするには、strideを使用する方法もあります。

書き方:

strideを使用すれば開始位置、終了位置、間隔が設定できますので、配列のindex番号0,3.5のように間隔を開けて値を取得することもできます。

実行結果:

Dictionary(ディクショナリ)型のループ

Dictionary(ディクショナリ)とはキーと値をセットにした配列で、PHPの連想配列のようなもです。

キーに紐づく値をセットできるため、ディクショナリ(辞書)とも言います。

以下にDictionary型のキーと値をfor-in文で取得するサンプルプログラムを紹介します。

実行結果:

String型のループ

for-in文を使用すれば、「文字列.characters」でString型の文字列を1文字ずつ取り出すことが可能です。

文字列を1文字ずつ取り出す方法を以下に記述します。

まとめ

ここではSwift3.x系のfor文、for-in文に関して、

・Swift3での変更点
・for文、for-in文の基本的な使い方
・配列の要素分ループする方法
・Dictionary(ディクショナリ)型のループ
・String型のループ

などについて解説しました。

for文の言語使用がSwift3.0にバージョンアップしてから大きく代わりました。

しかし、新しい書き方になれてくると、今までのfor文の書き方が冗長であることもわかります。

もし、for文、for-in文の書き方を忘れてしまったら、この記事を思い出してくださいね!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説