Swift 2.0とオープンソース化が発表されたSwiftの制御構文――比較演算子、条件分岐(if、else、switch)、繰り返し(for、while)&Playgroundのグラフで確認:初心者のためのSwiftで始めるプログラミング入門(4)(1/4 ページ)
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。今回は、Swiftの制御構文として、比較演算子や条件分岐(if、else、switch)、繰り返し(for、while)について解説し、Playgroundのグラフで確認してみます。
WWDC 2015でSwift 2.0が発表! オープンソースに
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.
関連記事
- アップル、新プログラミング言語「Swift」「iOS 8 SDK」「Xcode 6」のベータ版を発表
米アップルが新しいプログラミング言語「Swift」と開発ツール「iOS 8 SDK」「Xcode 6」のベータ版を発表。その特徴と注目ポイントを紹介。 - iOS 8 SDK、Xcode 6、Swift 1.0がGMに。Apple Pay機能の組み込み、TestFlight Beta Testingも利用可能
米アップルが2014年9月9日に発表した内容の中から、iOS 8 SDK、Xcode 6、Apple Watch、Swift 1.0などに関する開発者向けの情報をまとめてみる。 - Swiftでの変数の定義、Xcodeでのアウトレット接続、iOSシミュレーターへの画像素材追加
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。今回は、Xcodeでアウトレットを接続する方法、Swiftでの変数定義の仕方、iOSシミュレーターへ画像素材を追加する方法などを解説します。 - OptionalなどSwiftとObjective-Cの違いを意識してPhotos Frameworkを使う
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。今回は、前回の記事で追加した写真の情報を「Photos Framework」の機能を使用して取り出し、写真の情報にひも付いた座標にピンを表示します。また、その過程でOptionalなどSwiftとObjective-Cの違いについて解説します。 - Swiftのカスタムクラスの作り方――プロトコル、サブクラス、イニシャライザー、タイププロパティメソッドのオーバーライド、デリゲートについて注釈の作成で学ぶ
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。今回は、前回の記事で追加した地図上の「注釈」を写真のサムネイルに差し替える課程でSwiftのカスタムクラスの作成手順について解説します。 - iOS 8アプリ開発のこれまで&Swift 1.2への対応、プロパティオブザーバーとwillSetの基本的な使い方、セグエを使った画面遷移
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。最終回は、これまでの連載を振り返り、これまで作成したPhotoKitを使ったサンプルアプリの仕上げとしてセグエを使った画面遷移を実装の仕方や、プロパティオブザーバーとwillSetの基本的な使い方を解説する。 - 外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気
WWDC常連のドリキンが今年もキーノートを斬ります! 今回はメディアとエンジニアとで、反応が真っ二つに分かれる内容となりました。その理由をエンジニア視点で解き明かしていきたいと思います。 - Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。