繰り返し処理!Swiftで書くwhile/for文の使い方【初心者向け】

初心者向けにSwiftでwhile文・for文の書き方を解説しています。繰り返し処理は、基本的な知識として理解しておきたい内容ですが、開発現場でも頻出するので書き方を理解しましょう。実際にサンプルコードも紹介しています。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Swiftで繰り返し処理の書き方について解説しています。

ここでは、while文とfor文の書き方を実際にソースコードを書きながら紹介しています。開発する中でも頻繁に使用するものなので、自分でも書いて理解してみましょう。

 

なお本記事は、TechAcademyのiPhoneアプリ開発オンラインブートキャンプの内容をもとに紹介しています。

 

繰り返し処理とは

Swiftでアプリケーション向けのプログラムを作っていると、同じ処理を何度も繰り返し行う必要がある場面がほぼ必ず出てきます。

Swiftでは「ループ」と呼ばれる、繰り返し操作をサポートする構文として

  • while 文
  • repeat – while 文
  • for 〜 in 文

があります。

例えば、 1 から 10 までを足した合計を計算するプログラムは、

var total = 0
total += 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
print(total) // => 55 と表示

と記述することができます。

10 ぐらいまでなら、このように 1 行で記述してもそれほど手間にはならないように見えます。

しかしながら、例えば、20 までの合計を出したいとか、あるいは、100 までの合計を出したいなどと、合計する数が増えてくると途端に大変になるのは目に見えています。

また、プログラムを実行するまで、いくつ合計すればいいのか分からないという場合もあります。

このような場合、繰り返し操作を行う構文を利用したプログラムを使うことで、より柔軟に変更への対応をすることができます。

var count = 0
var total = 0
while count < 10 {
  count += 1
  total += count
}
print(total) // => 55 と表示

この記述であれば、 count < 10 の部分の数字 10 を変更するだけで、合計する数を変えることができます。

 

例えば、 100 まで合計したい場合は

var count = 0
var total = 0
while count < 100 {
  count += 1
  total += count
}
print(total) // => 5050 と表示

のようになって、プログラムのほんの一部を変更するだけで済みます。

プログラムは「一度記述すれば終わり」ではなく、後から要件や状況に応じて変更が必要になることがほとんどです。

変更の箇所が多くなれば多くなるほど、不具合が起きやすくなります。繰り返し構文は変更箇所を減らす重要なプログラムテクニックのひとつです。

それぞれの繰り返し構文の書き方を見ていきましょう。

サンプルコードが記述されていますが、実行結果は全て同じになるコードになっています。

 

while 文 (while ループ) の書き方

while 条件 {
  // 繰り返し実行されるコード
}

while に続けて、条件式を記述して、 { } で繰り返し行う実行プログラムを記述します。

while の後の条件が満たされる限り、 { } 中のコードが繰り返し実行されます。

サンプルコード

var count = 0
var total = 0
while count < 10 {
  count += 1
  total += count
}
print(total) // => 55 と表示

 

[PR] iPhoneアプリの開発で挫折しない学習方法を動画で公開中

repeat – while 文の書き方

repeat {
  // 繰り返し実行されるコード
} while 条件

最初に repeat を置き、続けて { } で繰り返し行う実行プログラムを記述します。末尾に while 条件 と繰り返し行うための条件を記述します。

while 文とは、最初に条件を見るか、後に条件を見るかが変わります。 repeat – while 文だと後に条件を見るので、状態に関わらず、必ず一度は { } の中のコードが実行されます。

サンプルコード

var count = 0
var total = 0
repeat {
  count += 1
  total += count
} while count < 10
print(total) // => 55 と表示

 

for 〜 in 文 (for ループ、あるいは for – in ループ) の書き方

for 定数 in 式 {
  // 繰り返し実行されるコード
}

for 文では条件を記述する代わりに、繰り返しの元となる範囲や配列を in の後に記述します。

範囲は 0…10 や 0..<10 のように 「…」「..<」を使った記法を利用できます。

  • 前…後 : 「前」で始まり「後」まで続く範囲を指定します。「後」も範囲に含まれます。
  • 前..<後 : 「前」で始まり「後」のひとつ前まで続く範囲を指定します。「後」は範囲に含まれません。

範囲や配列から元になる値が生成されて、それが for の後ろに記述した定数に代入されます。

 

サンプルコード

var total = 0
for count in 0...10 {
  total += count
}
print(total) // => 55 と表示

for 〜 in 文のサンプルコードをみると、

in 0…10 とあるので、 0 から 10 までの範囲で繰り返し処理を行うことが分かります。

for count とあるので、範囲の値 0 から 10 までが { } 内の繰り返し処理を行う前に count に代入されます。

{ } 内のコードでは count を定数として利用できます。

 

繰り返し構文に変換するために

前掲のサンプルコードは

var total = 0
total += 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10

というコードから、同じ内容になるように繰り返し構文で記述し直したものです。

繰り返し構文を記述するためには繰り返されている部分を見つける必要があります。

この例の場合ですと、

var total = 0
total += 1
total += 2
total += 3
total += 4
total += 5
total += 6
total += 7
total += 8
total += 9
total += 10

のように書き直すことができ、 total += の形で繰り返し処理されていることが分かります。

 

繰り返し内の実行コードをスキップする・抜ける

繰り返し構文の繰り返し実行されるコードで、場合によっては途中で繰り返しを止めたり、あるいは、現在実行中の繰り返し処理を飛ばして、次の繰り返し処理をしたい場合があります。

繰り返し構文の繰り返し実行されるコードを途中で止めて、繰り返しを抜けるにはbreakを使います。

例えば、 100 までの数を合計する中で、合計が 100 を超えた時点で繰り返しを止めたい場合には

var count = 0
var total = 0
while count < 100 {   
  count += 1   
  total += count   
  if total > 100 {
    break
  }
}
print(total) // => 105 と表示

のようなコードになります。

繰り返し構文の繰り返し実行されるコードで、条件によって処理をスキップしたい場合には continue を使います。

例えば、 100 までの奇数の合計を求めたい場合には

var count = 0
var total = 0
while count < 100 {
  count += 1
  if count % 2 == 0 {
    // 偶数は足さずにスキップ
    continue
  }
  total += count
}
print(total) // => 2500 と表示

のようなコードになります。

 

以上、Swiftで繰り返し処理について解説しました。

for文・while文は基本的な知識ですが、開発現場でも頻出するものなので、書き方を理解しておきましょう。

入門向けのSwift学習サイトもまとめているので、Swift習得を目指している方はご覧ください。

また、TechAcademyでは初心者でも8週間でオリジナルアプリが作れるiPhoneアプリ開発オンラインブートキャンプを開催しています。「自分の力でアプリ開発したい」という方はぜひご覧ください!