LoginSignup
8
6

More than 5 years have passed since last update.

if文は条件分岐ではない

Last updated at Posted at 2018-06-04

if文は条件分岐ではありません

プログラミング言語の設計思想によって少し異なりますが、if文は「条件分岐のための仕組みではありません」というお話です。

プログラミング入門記事のif文とswitch文についての解説がわからない

一般的なプログラミング言語には、if文とswitch文という複数の分岐構文がありますね。C言語を学びはじめた時に「if文で分岐できるのに、なぜswitch文があるのか?」と疑問に思ったものです。

さっそく当時通っていたプログラミングスクールの先生に聞いてみたところ「たくさん分岐する時はif文よりswitch文の方が読みやすい」という、全く意味のわからない解説をされました。確かに比較する値が異なるif-elseが続くコードは読みにくい気はしますが、if文よりswitch文の方が見やすいというのは、あくまで主観的な理由だと思います。

例えば、pythonにはswitch文がありませんが、不満を言っている人は周囲にいますか?

私の周りには一人もいません。

switch文が条件分岐

結論をいう前に、まずswitch文について触れておきます。

switch文は紛れもなく条件分岐のための文です。

部屋のスイッチをイメージしてもらえれば分かりますが、電流を別の回路へ切り替えるための装置であることはわかるでしょう。

switch文は処理を分岐するための仕組みです。

さて、それではif文はなんのためにあるのでしょうか?

if文はエラーチェックをして例外を処理をする仕組み

結論から言うと、if文はエラーチェックをする仕組みです。

プログラム実行時に、入力値が出力値へと、正常に出力されればよいのですが、いとしない出来事「例外」が発生するのは日常茶飯事です。

例外つまり思いがけないエラーが発生した時に、if文で異常値を検出して例外処理をするのです。

もしかして...異常が起こっていませんか?と確認するための仕組みがif文なのです。

AかBかCのどちらかへ行きましょうという分岐ではないのです。

if文を条件分岐だと勘違いしている人がいるから、この世には読みにくく保守がしにくいプログラムコードがはびこっているのではないでしょうか。

↓↓↓↓↓↓↓ あなたの記事の内容
よくわからずプログラミングを教えている先生には、気をつけましょう!あとはついでにtry...catch万能神話を語る輩にも気をつけましょう。
───────
if文を条件分岐だと勘違いしている人がいるから、この世には読みにくく保守がしにくいプログラムコードがはびこっているのです。よくわからずプログラミングを教えている先生には、気をつけましょう!あとはついでにtry...catch万能神話を語る輩にも気をつけましょう。
↑↑↑↑↑↑↑ 編集リクエストの内容

…という、ただの愚痴でした。

おしまい。

8
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6