はじめに
プログラミング関連の記事は、アクセス数はいまいち良くないのですが
他のサイト、ブログを見るとSwiftプログラミングについて、初心者でもわかりやすいように解説されているサイト、ブログがなかなかないので、地道にSwiftプログラミングの記事をコツコツ更新したいと思います!
今回は繰り返し処理の基本的な内容について解説します。繰り返し処理の構文はfor文とwhile文があります。繰り返し処理は基本的なかつ重要なので、是非マスターしましょう!
一定の回数を繰り返すfor文
決められた回数を繰り返す for in文
決められた回数だけ繰り返したい場合は以下のfor文の構文を使用します。
for 変数 in 初期値 ... 最終地 { 繰り返し処理を行っている間の処理をココに記述 }
以下は10回繰り返すfor文のサンプルプログラムです。for文で設定されている「変数i」は1から10まで増えていきます。
import UIKit var num:Int for i in 1...10 { num = i }
XcodeのPlaygroundでの結果は以下の通りになります。「変数i」の値を「変数num」に格納しています。繰り返し処理が行われる度に1ずつカウントアップされ、「変数i」に格納されていることがわかります。
Playgroundの作成方法は以下の記事を参考にしてください。
初期設定と初めてのSwiftプログラミング – Swiftプログラミング入門2
「変数i」の値は以下のとおりになります。
- 繰り返し1回目 → i = 1
- 繰り返し2回目 → i = 2
- 繰り返し3回目 → i = 3
- …
- 繰り返し10回目 → i = 10
以下のようにfor文の中にfor文を入れて、2重でループさせることもできます。
import UIKit var num1:Int var num2:Int for i in 1...3 { for j in 1...3{ num1 = i num2 = j } }
「変数i」、「変数j」の値は以下のとおりになります。
- 繰り返し1回目 → i = 1、j = 1
- 繰り返し2回目 → i = 1、j = 2
- 繰り返し3回目 → i = 1、j = 3
- 繰り返し4回目 → i = 2、j = 1
- 繰り返し5回目 → i = 2、j = 2
- 繰り返し6回目 → i = 2、j = 3
- …
- 繰り返し9回目 → i = 3、j = 3
カウンターを数えて繰り返す for文
C言語のfor文の形式と一緒ですね〜 上記のfor文との違いはカウントアップだけではなくカウントダウンも行うことができます。
for(カウンタの初期化; ループを抜ける条件; カウントアップまたはカウントダウン) { 繰り返し処理を行っている間の処理をココに記述 }
以下は10回繰り返すfor文で「変数i」を10から1までカウントダウンします。
import UIKit var num:Int for (var i = 10; i > 0; i--) { num = i }
配列から値を順番に取り出す for in文
さらにfor in文では、コレクションから値を値を取り出して繰り返し処理を行うことができます。コレクションとは配列やDictionary型などのことをいいます。配列の全ての値を一括して処理をするのに便利ですね〜
for 変数 in コレクション { 繰り返し処理を行っている間の処理をココに記述 }
以下は「配列numlist」の合計値をfor文で計算しているサンプルプログラムです。
import UIKit var numtotal = 0 var numlist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in numlist { numtotal += num } //変数numlistの合計値 55 が出力 print("\(numtotal)")
以下は「辞書型wareki」の値を取り出して繰り返し処理を行っているサンプルプログラムです。
import UIKit var wareki = ["1":"明治", "2":"大正", "3":"昭和", "4":"平成"] // 辞書型の全てのデータを取り出す for (code, name) in wareki { print("\(code), \(name)") } // 辞書型のキーだけを取り出す for key in wareki.keys { print("\(key)") } // 辞書型の値だけを取り出す for value in wareki.values{ print("\(value)") }
特定の条件を満たしている間、処理を繰り返すwhileループ
繰り返し回数が決められてなく、特定の条件が成立している間だけ繰り返し処理を行いたい場合はwhile文を使用します。
繰り返し条件を先に確認する while文
以下の文は繰り返し条件を先に確認するwhile文の構文です。最初で繰り返し条件を満たさない場合は1度も繰り返し処理を行われません。
while (繰り返し条件){ 繰り返し処理を行っている間の処理をココに記述 }
以下の「変数num」が0から5までランダムの数値を生成するので、その「変数num」の値が5になるまで繰り返し処理を行うwhile文のサンプルプログラムです。
import UIKit var while_exit = true var num = 0 while (while_exit) { // 0から5までの数値をランダムで生成 num = random() % 6 // 変数numが5の場合はループを抜ける if(num == 5){ while_exit = false } }
処理を行ったあとで、繰り返し条件を確認する repeat-while文
以下の文は繰り返し条件をあとで確認するwhile文の構文です。繰り返し条件はあとで確認するので必ず一回は繰り返し処理が行われます。
do { 繰り返し処理を行っている間の処理をココに記述 } while (ループ条件)
import UIKit var while_exit = true var num = 0 repeat { // 0から5までの数値をランダムで生成 num = random() % 6 // 変数numが5の場合はループを抜ける if(num == 5){ while_exit = false } } while (while_exit)
繰り返し処理の中断方法
繰り返し処理を途中で中断する方法はcoutinue文とbreak文を使用します。coutinue文は現在の繰り返し処理をスキップして次の繰り返し処理を行います。break文は繰り返し処理を全て中断します。
以下のサンプルは「配列numlist」がマイナス値の場合はcontinue文で現在の繰り返し処理を中断して、次の繰り返し処理を行っています。
import UIKit var numlist = [5, 4, 3, 2, 1, -1, -2, 1, 2] var total = 0 for num in numlist { // マイナス値の場合 if(num < 0) { continue } total += num } // 18が出力される print("\(total)")
以下のサンプルは「配列numlist」がマイナス値の場合はbreak文で以降の繰り返し処理を全て中断しています。。
import UIKit var numlist = [5, 4, 3, 2, 1, -1, -2, 1, 2] var total = 0 for num in numlist { // マイナス値の場合 if(num < 0) { break } total += num } // 15が出力される print("\(total)")
まとめ
- 繰り返し処理を行うには、for文とwhile文を使用する
- 決まった回数だけ繰り返す場合はfor文を使用する
- 回数は決まってなく、特定の条件の間だけ繰り返す場合はwhile文を使用する
- 現在の繰り返し処理をスキップして、次の繰り返しを行う場合はcontinue文を使用する
- 繰り返しを全て中断する場合はbreak文を使用する
【おすすめプログラミングスクール TECH ACADEMY】
iPhoneアプリ開発でおすすめのプログラミングスクールを見つけました。最短4週間でプログラミング未経験者からプロのエンジニアに育てるオンラインのスクールです。
通常のプログラミングスクールだと、プログラミング言語の学習がメインでアプリ開発はオマケでつくるところが多いのですが、このプログラミングスクールはアプリ開発がメインでAppStore開発までサポートします。
わからない点があれば受講生1人ずつに現役エンジニアのパーソナルメンターが着いて質問に答えてくれるので、つまづくことも少なそうです。
私は常々プログラミングを習得する近道はプログラミング言語の勉強はそこそこにして、自分が作りたいアプリ開発にできれば早く取り掛かったほうがスキルが身に付くと言っています。このスクールはアプリを開発してAppStoreに公開することがメインになっているのでおすすめできます!
プログラミングを習得することは損にはならないですよ〜
- 上手くいけばアプリで収入を得ることが出来る
- 自分が作りたいアプリをプログラマに委託せずに開発でき、コストを抑えることが出来る
- 起業などで自分が考えたWebサービスなど初期コストを抑えて、自分で開発することが出来る
- クラウドソーシングなどで高単価のプログラミング案件を受注できるようになり、フリーランスとしての活躍の幅が広がる
- Appstoreにアプリを公開した実績があれば、エンジニアとしての転職に有利になる