Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日: 更新日:

第5回 witch文を理解しよう

著者: 崎谷実穂

第5回 witch文を理解しよう

1つの値を複数の条件で判定

「switch」を使った比較

前回学んだif文は、「ある条件を満たしたときだけ処理を行う」というプログラムでした。上のプログラムで使われている「switch」は、どのような場合に用いられるのでしょうか?

Lesson 1●switch文の構造を理解しよう

switch文は、基本となる変数を、「case」に続けて書いた複数の値と比較して、条件がマッチしたら次の行にあるプログラムを実行する制御構文です。switchを使うと、ひと目で変数の値によって処理を変えている、ということがわかります。

ひと目でわかるプログラムを書くことは、ミスを減らし、複数人での作業を容易にします。「みんながわかりやすい」プログラムを書くために、まずは「自分がわかりやすいプログラム」を書けるようになりましょう。

ちなみに、caseはいくつでも書けますが、どのcaseにも当てはまらなかった場合の処理「default」が必ず必要です。switch文は、最後にdefaultを入れないと、エラーが出てしまいます。

無視されてしまう処理に注意

switch文のcaseは、上から順に比較され、条件に当てはまる処理を行ったら、switch文を「抜けます」。したがって上図のプログラムでは、2回目のcase「りんご」は無視され、「りんごが好きです。」が出力されることはありません。

switch文のフローチャート

この「値1」「値2」というのが、プログラムの場合は「case ◯◯」「case △△」と表記されます。当てはまらないときに実行したい処理は、最後に「default:」と書き、その次の行に記載しましょう。

Lesson 2●switch文とif文の使い分け

この下の図版にあるswitch文とif文の例題は、両方とも同じ処理を行うソースコードです。長さは同じくらいなのですが、if文のほうが読みにくいと感じませんか? それは、1行ずつif文の中身を読んで条件を確認しないと、何の処理をしているかが不明だからです。

このコードはまだ単純だからよいですが、これが「同じかどうか」の判定ではなく、もっと複雑な条件だったら? 上から順番に1行ずつ読まないと、全体でどんな処理をしているプログラムなのかがわからないのは、大変不便です。

その点、switch文を使えば、見た瞬間に「値が◯◯だったら△△」という処理をしていることがわかります。あとは、caseに何が入るかを確認すればOK。プログラムとして、メモリをif文よりも使わずに済み、処理が速いという利点もあります。

switch文を使えば見やすい!

switch文の場合、2行目の「switch」を見るだけで、ある変数を複数の値と比較して、処理を変えるということがわかります。書き方は「switch 変数 { 」で書き始め、判定条件は「case 値 :」と書きましょう。次の行に、判定条件に合致したときの処理を書きます。

if文は処理内容が読みづらい

条件部分の自由度がswitch文より高いため、何が書かれているか上から1行ずつ確認しないといけません。ちなみに、「==」で文字列を比較できるのは、Swiftだから。他の言語ではたいてい、文字列を比較するのはもっと面倒な処理が必要です。

崎谷実穂

ビジネス、IT、教育関係の記事・書籍のライティングを中心に活動するライター。プログラミングの経験はまったくなし。

 

びび

Swiftに詳しいツバメ。ノンプログラマーにも丁寧にプログラミングを教えてくれます。