みなさんこんにちは。
Numata です。
今回はif 文の仕組みについて解説します。
※組み立て方法、使い所、条件式を作る時の注意点を解説する
初心者向けの記事です。
if文はそんなに複雑な文法ではないです。
条件式の組み立てに注意点がありますが、それ以外は覚えてしまえば比較的簡単です。
最初に正しく理解しちゃいましょう!
それではいってみましょう!
もくじ
if文とは?
if文とは、処理を分岐させたい時に用いる文法です。
プログラミングの基本概念として、処理は上から下、左から右の順で実行されます。
システムを組む上で必ず出てくる考え方は、
「この時はこうしてほしい」「この時はあれをしてほしい」
というような、場合分けです。
そんな時使う文法がif文です。
if文は、条件を指定し、条件に当てはまるとき、処理を実行する
ことができます。
つまり、処理を分岐させることができます。
このif文を使うことにより、例えば、
年齢が20歳未満だったら注意書きを出す
購入数によって割引をする
といった処理を作成することができます。
if 文の作り方
if (条件式) {実行したい処理}
if 文は大きく3ブロックで構成されています。
①:if
②:(条件式)
③:{実行したい処理}
それぞれに意味があるので、必ず書くようにしましょう。
ありがちなミスは、
if (条件式) ; {処理}
という風に、②と③の間にセミコロン ; を入れてしまうミスです。
確かにセミコロンは、文が終わった時に必ず書く記号ですが、
②と③の間には記入しません。
セミコロンが入ると、if文が終了したと判定されてしまいます。
処理を行うまでがif文のワンセットのため、セミコロンは記入しません!
使い方
まずは例文を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) { //年齢を設定 int age = 18; //もし20歳未満なら注意書きを表示 if (age < 20) { System.out.println("アイテムの購入に関して、20歳未満の方はご両親の同意を得てください。"); } } } |
8行目からif文が使われています。
条件式は age < 20 です。
変数 age に入っている数字が、20未満という条件式になります。
この条件式に当てはまるとき、処理が実行されます。
処理は {} で囲まれている範囲に書かれているプログラムです。
もう一つ例文を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Main { public static void main(String[] args) { //リンゴとミカンを合計5コ以上買ったらお買い得 //価格 double applePlace = 100; double orangePlace = 80; //購入する個数 int apple = 3; int orange = 3; if(apple + orange >= 5) { //20%引き applePlace = applePlace*0.8; orangePlace = orangePlace*0.8; } System.out.println("合計金額は" + (int)(applePlace+orangePlace) + "円です!"); } } |
14行目からif文が使われています。
条件式は apple + orange >= 5 です。
条件式の()内では、計算も行うことができます。
今回は、apple + orange の計算結果が 5以上という条件式ですね。
このように、条件式を書く()内には、計算式も書くことができます。
条件式はboolean型です
条件式を書く上で、意識する必要があるのが、
条件式はboolean型で判定されるということです。
一つ目のプログラム
条件式は、age < 20 です。
age には18が代入されているので、18 < 20 になります。
Javaは、この 18 < 20 という式が、true か false かを判定しています。
今回であれば、true です。18 < 20 という式自体があっていますよね。
age に30が代入されていた場合、
30 < 20 になります。
この式はfalse です。30 < 20 という式は間違っています。
if 文は、条件式の結果がtrue の時、処理が実行されます。
つまり、条件式の中身は、boolean型で判定さえできれば、どのような式でも書けます。
二つ目のプログラム
条件式は、apple + orange >= 5 です。
apple には3、orange には3が代入されているので、3 + 3 >= 5 になります。
Javaは、 3 + 3 >= 5 という式が、true か false かを判定します。
今回であれば、true です。計算結果の6 >= 5 という式自体があっていますよね。
このように、条件式の中で計算式を書いても、
その結果がboolean型で判定できる式なら問題ありません。
大切なのは、式の結果があっているかどうかという観点を持つことです。
最初の内はあまり使わない考え方ですが、
学習が進むにつれ、boolean型で判定されるという考え方を持っているか否かで
差が出るところですので、ぜひこの際に覚えちゃってください。
条件式の見方を、
「式の結果がtrue or falseの時」
という風にしてほしいのです。
個人的に覚えてほしくない見方が
「ageが20未満の時」「3+3が5以上の時」
という見方です。
条件式を後者の見方で作成する癖がついてしまうと、
数字以外を条件判定に使う際に混乱して、ロジックが追えなくなってしまいます。
if 文は基礎中の基礎で、頻出する文法です
いかがでしたでしょうか。
if 文は基礎の文法ですが、めちゃくちゃ使います。
作り方自体は簡単だとは思います。
条件式は、計算結果がboolean型
これをしっかり覚えておけば問題ないでしょう!
ご覧いただき、ありがとうございました。
コメント