プログラミングをしていると、必ず出てくるこの場面…
「特定の条件のときだけ、処理を実行させたい!」
そんなときに使うのが「if文」です。
if文を使わないでプログラミングをするなんて不可能!
この記事を読んで、「正しいif文の使い方」をマスターしましょう!
もくじ
プログラミングにおける「if文」とは
「if」を日本語にすると「もし~ならば」ですよね。
プログラミングで使う「if」も、これとまったく同じ用途で使います。
「もし空から100万円が降ってきたら…」
「もし大好きな人にフラれてしまったら…」
「もしも君が1人なら…」
この「~したら」の部分をプログラミングで表すために、if文を使うのです。
そして、if文は条件を満たしたときにだけ、特定の処理を実行させることができます。
「もし僕が夢のプログラマーになったら…結婚しよう!」
この「結婚しよう!」が、条件を満たしたときにだけ実行される「処理」の部分にあたります。
if文の書き方
まずは、if文の基本的な構成について見てみましょう。
# if文の書き方
if 条件
処理
end
上のif文は、Ruby言語で書いた場合になります。
プログラミング言語によってifの記述は少し違いますが、基本はほとんど同じです。
「if」のうしろには、必ず条件式を書きます。
条件式の結果が「true」になれば、ifの中の処理が実行されます。
逆をいえば、条件式の結果が「false」の場合は、ifの中の処理がスキップされるということになります。
では、実際にRubyで書かれたif文を見てみましょう。
# 変数に代入
is_programmer = true
# もし「is_programmer」の中身が「true」だったら
if is_programmer
puts '結婚しよう!'
end
# 変数に代入
is_programmer = false
# もし「is_programmer」の中身が「false」だったら
if is_programmer
puts '結婚しよう!(今回は実行されない)'
end
1つ目のif文は「結婚しよう!」という文字が表示されますが、2つ目のif文は処理が実行されずに次の処理へと進みます。

if文の条件
if文の使い方がわかったところで、条件式の書き方をいくつか紹介します。
# flagに「true」を代入
flag = true
# flagが「true」であれば
if flag
puts '処理を実行'
end
# flagが「false」でなければ
if !flag
puts '処理を実行'
end
# flagに「1」を代入
flag = 1
# flagが「1」ならば
if flag == 1
puts '処理を実行'
end
# flagが「0」でなければ
if flag != 0
puts '処理を実行'
end
# flagが「0」より大きければ
if flag > 0
puts '処理を実行'
end
# flagが「1」以下ならば
if flag <= 1
puts '処理を実行'
end
# flagが「0」以下でなければ
if !(flag <= 0)
puts '処理を実行'
end
よく使いそうな条件式を書いてみました。
「==」は「等しい」、「!」がつくと「条件が反転」になります。
ちなみに上の条件式はどれも成立するため「true」となり、すべての処理が実行されます。
if文の中にif文を書く
if文の中にif文を書くことだって、できちゃいます。
ちなみに、これを「ネストする」といいます。
# 変数に代入
is_programmer = true
exist_girlfriend = true
# is_programmerが「true」であれば
if is_programmer
# exist_girlfriendが「true」であれば
if exist_girlfriend
puts '結婚しよう!'
end
end
プログラミングをしていれば、if文をネストしたい場面が必ず出てきます。
ですが、ネストする前にはかならず「中のifを外に出すことはできないかな?」と考える癖をつけるようにしましょう。
上のようにネストしたif文を書くよりも、下のように書いたほうがスッキリするからです。
# 変数に代入
is_programmer = true
exist_girlfriend = true
# is_programmerが「true」かつ、exist_girlfriendが「true」であれば
if is_programmer && if exist_girlfriend
puts '結婚しよう!'
end
どうですか?見やすいですよね?
ネストしていた条件式を横に並べて1行にし、「&&」で繋いでいます。
「&&」は「かつ」の意味になり、ほかにも「||」で「または」というものもあります。
これらをうまく活用して、if文のネストをできるだけ減らすようにしましょう。
elseは条件に含まれない場合の処理
if文の条件式に当てはまらなかったとき、処理をスキップするのではなく、別の処理を実行させたい場合があります。
そんなときは、「else(エルス)」を使いましょう。
以下が使用例になります。
# 変数に代入
is_programmer = false
# is_programmerが「true」であれば
if is_programmer
puts '結婚しよう!'
# is_programmerが「true」でなければ
else
puts '諦めない!'
end
「else」は、「条件に含まれなければ」という意味になります。
is_programmerには「false」が代入されているため、ifの条件が不成立となり、elseの中の処理が実行されるのです。
つまり、「諦めない!」が表示されるということです。
elseifは複数の条件を指定する場合に使う
if文の条件式に当てはまらなかったとき、別な条件で比較したい場合があります。
そんなときは「elseif(エルスイフ)」を使いましょう。
だいたいのプログラミング言語では「elseif」なのですが、Rubyの場合は「elsif」なので注意!
# 変数に代入
is_programmer = false
exist_girlfriend = true
# is_programmerが「true」であれば
if is_programmer
puts '結婚しよう!'
# is_programmerが「true」でない、かつexist_girlfriendが「true」であれば
elsif exist_girlfriend
puts 'プログラマーになってからプロポーズしよう!'
# どの条件にも一致しなければ
else
puts '諦めない!'
end
1つ目のifでは条件が一致しないため、次のelsifの条件に移ります。
elsifの条件は成立するため、「プログラマーになってからプロポーズしよう!」が出力されます。
処理が実行されたあとは、elseをスキップして次の処理へと進んでいきます。
まとめ
- if文は「もし~ならば」の条件式と「~する」の処理で構成されている
- ifは条件式が「true」になった場合のみ処理を実行する
- ifの中には色々な条件式を書ける
- if文の中にif文を書ける(ネスト)
- 「&&」や「||」を使えば条件式をまとめられる
- 「else」や「elseif」を使えば条件分岐ができる
if文を使うタイミングはとってもシンプル。
自分の頭に「~のときだけ~したいな」と浮かんだタイミングこそが、まさにif文を書くタイミングです!
ですが、「なんでもかんでもif文にしちゃえばいい」という考え方は良くありません。
if文を書くときは、「このコードは読みやすいか?」ということを常に意識しながら書くようにしましょう。
コードを綺麗に書くこと(リファクタリング)も、プログラマーとして大切なスキルの1つですから。
またね、キツネ(@kitaaaa_kitsune)でした!
