本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。今回は、Swiftの制御構文として、比較演算子や条件分岐(if、else、switch)、繰り返し(for、while)について解説し、Playgroundのグラフで確認してみます。
2015年6月9日(日本時間)より開催中のアップルの年次イベント「WWDC 2015」で「Swift 2.0」が発表されました。新しい書き方が追加された他、OS X、iOSに加えてLinuxで利用できるようになります。Swift 2.0は今秋にオープンソースとしてリリースされる予定です(参考:WWDC 2015:Apple、プログラミング言語「Swift 2.0」をオープンソースに - ITmedia Mobile)。
オープンソース化されることで、世界のさまざまな開発者がSwiftの開発に関わることができるようになります。Swiftはもっと速く、安全に、簡単に利用できるようにますます進化していくことでしょう。これから楽しみですね。
前回の「Apple WatchやiPhoneのアプリを作ろう! Playgroundで学ぶSwiftの基礎―変数、定数、型、演算」では、Swiftの基礎である変数、定数、型、演算について、サンプルプログラムを通して学びました。プログラムをうまく動かせたでしょうか?
今回はステップアップして、もう少し難しいプログラミングに挑戦しましょう。今回新しく覚える内容を理解するには、前回の内容を理解していることが重要になります。読んでいる途中で意味がよく分からなくなったときには、前回の記事を見直しながら進めてみてください。
アプリでは「このときには、こういう動作にしたい」「この動作を10回繰り返したい」といったように、プログラムに条件を付け加えたり、同じプログラムを繰り返し行わせたりすることが必要な場面が出てきます。こういった場合、どのようなプログラムを書けばいいのでしょうか?
前回、プログラムは上から順番に実行されると説明しました。しかし「このときには、こういう動作にしたい」といった場合、プログラムの一部をある条件のときのみ実行されるようにしたり、同じ行を繰り返し実行されるようにしたりといったプログラムの流れを制御する必要があります。
そこで、Swiftではプログラムの流れを制御するための特別な構文が用意されています。この構文のことを「制御構文」と呼びます。制御構文は目的に応じていくつか用意されています。
制御構文 | 目的 |
---|---|
if文 | ある条件を満たすときだけ処理を実行する |
switch文 | 値に応じて処理を分岐させる |
for文 | 指定した回数だけ同じ処理を実行する |
while文 | ある条件を満たしている間、同じ処理をずっと繰り返す |
それぞれ、サンプルプログラムを通して学んでいきましょう。
制御構文を学ぶ前に、まずは条件式について理解しましょう。条件式とは2つの値を比較して、真偽(正しいかどうか)を判定する式のことです。制御構文の中では、この条件式で判定した結果によってプログラムの流れを変えていきます。
まず、次のプログラムを書いてみましょう。
let ニンジン = 100 let タマネギ = 100 let 値段の比較 = ニンジン == タマネギ println(値段の比較)
このプログラムの3行目では「ニンジン」と「タマネギ」の値を「==」を使って比較しています。「==」は右辺と左辺が同じ値であるかどうかを判別する演算子です。このような、2つの値を比較するための演算子を「比較演算子」と呼びます。条件式では、この比較演算子を使っていろいろな条件を組み立てていきます。
条件式を使うと、2つの値を比較した結果をBool型の値として得ることができます(Bool型については、前回の記事を参照してください)。つまり上記のプログラムでは「ニンジン」と「タマネギ」が同じ値かどうかを判定した結果が、「値段の比較」という定数にBool型の値として代入されます。「ニンジン」と「タマネギ」はどちらも「100」で同じなので、結果は「true」(正しい)になります。
比較演算子は「==」だけではなく、次のようなものがあります。
比較演算子 | 意味 |
---|---|
== | 左辺と右辺が同じ値であるか |
!= | 左辺と右辺が異なる値であるか |
> | 左辺が右辺より大きい値であるか |
>= | 左辺が右辺より大きいまたは同じ値であるか |
< | 左辺が右辺より小さい値であるか |
<= | 左辺が右辺より小さいまたは同じ値であるか |
比較演算子で比較する2つの値は原則的に同じ型でなければいけません(※)。そのため、次のような条件式を書くとエラーになってしまいます。
※型の組み合わせによっては、評価できるように自動的に変換してくれる場合があります。特殊なケースになるので、今回は割愛させていただきます。
let 比較 = "100" == 100
「>」や「<」のような2つの値を大きいか小さいか比較する演算子は、数値の型(Int型、Double型、Float型)のみ利用できます。String型やBool型は利用できません。
let 大小の比較 = "100" > "90" // エラー
条件式は制御構文の中では多用しますので、書き方を覚えておくようにしましょう。それでは、次の章から制御構文を使ったプログラムを試していきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.