【Java】if文の書き方と使い方の基本
この記事では、Javaでプログラムの処理を条件によって分岐させる`if`文の基本を学びます。`if`、`else if`、`else`の構文を使い、条件式が真の場合に特定の処理を実行する方法を解説します。サンプルコードを通して、プログラムが条件を上から順に評価し、最初に合致した処理を実行する仕組みを理解し、柔軟なプログラム制御の基礎を習得できます。
開発環境
- OS: Windows10
- Editor: Visual Studio Code
- Java: 22.0.2
Javaのif文とは
Javaのif文は、プログラムの中で「もし〜なら、この処理を実行する」といったように、条件に応じて実行する処理を切り替えるための基本的な書き方(構文)です。特定の条件が正しい(真、true)か、間違っている(偽、false)かによって、実行する処理を変えることができます。
複数のif文や、if文に続けて記述するelse if文がある場合、プログラムは記述された順に上から一つずつ条件式を評価していきます。
条件式が評価され、その結果が「正しい」、つまりtrueであると判断された場合にのみ、そのif文の直後に書かれている、中括弧 {} で囲まれた特定のプログラムのまとまり(コードブロック)が実行されます。
基本構文
この構文は、プログラムの処理を条件によって分岐させるためのものです。ある条件が満たされた場合に特定の処理を行い、別の条件が満たされた場合に別の処理を行う、といった制御が可能になります。
まず、if (条件式1)の部分で、最初の「条件式1」が正しいかどうか(trueであるか)を判断します。
- もし「条件式1」が
trueであれば、その直後の中括弧{}の中にある「条件式1がtrueの場合に行う処理」を実行します。この処理が完了すると、if文全体の処理は終了します。
次に、もし「条件式1」がfalseだった場合、else if (条件式2)の部分に進みます。
- ここでは、次の「条件式2」が正しいかどうか(
trueであるか)を判断します。 - もし「条件式2」が
trueであれば、その直後の中括弧{}の中にある「条件式1がfalseで条件式2がtrueの場合に行う処理」を実行します。この処理が完了すると、if文全体の処理は終了します。
最後に、ifの「条件式1」もelse ifの「条件式2」もどちらもfalseだった場合、つまり、どの条件にも当てはまらなかった場合に、elseの部分に進みます。
elseの直後の中括弧{}の中にある「条件式1にも条件式2にも当てはまらない場合に行う処理」を実行します。elseには条件式を指定する必要はありません。
ここでいう「条件式」とは、最終的にtrue(正しい)かfalse(正しくない)のどちらかの結果を返す式のことを指します。また、「処理」とは、プログラムが実行する具体的な命令のことです。この構文を使用することで、プログラムは柔軟な判断と動作を行えるようになります。
1if (条件式1) { 2条件式1がtrueの場合に行う処理; 3} else if (条件式2) { 4条件式1がfalseで条件式2がtrueの場合に行う処理; 5} else { 6条件式1にも条件式2にも当てはまらない場合に行う処理; 7}
サンプルコード
このセクションでは、プログラムがどのように「もし〜なら、こうする」という条件に基づいて処理を分岐させるかについて説明します。プログラミングにおいて、特定の状況に応じて異なる動作をさせることは非常に重要です。例えば、ユーザーの入力内容によって表示を変えたり、エラーが発生した場合に特別な処理を行ったりするなど、様々な場面で条件分岐の考え方が使われます。
今回ご紹介するコードは、Java言語で書かれたif文(イフぶん)を使った条件分岐の例です。if文は、「もし(if)この条件が当てはまるなら、この処理をする。そうでなければ(else if)、別の条件をチェックして、その条件が当てはまるならこの処理をする。いずれの条件も当てはまらない(else)場合は、この処理をする」といった流れを表現するために使われます。
java/chapter08/IfExample.java
上記のコードは、変数scoreに格納された点数に基づいて、成績のランクをA、B、C、Dのいずれかに判定し、その結果を表示するプログラムです。
コードの内容を詳しく見ていきましょう。
まず、int score = 73;という行で、scoreという名前の「整数(int)」を扱うための箱(変数)を用意し、その中に73という数値を入れています。このscoreの値を使って、成績のランクを判定していきます。
次に、if文による条件分岐が始まります。
-
if (score >= 80): これは、「もしscoreが80以上であるならば」という最初の条件です。この条件が正しい(真である)場合、System.out.println("Aランクです。");という行が実行され、「Aランクです。」と画面に表示されます。そして、このif文のブロックはそこで終了し、それ以降のelse ifやelseの条件はチェックされません。 今回のscoreは73なので、80以上ではありません。この条件は正しくない(偽である)ため、次のelse ifの条件に進みます。 -
else if (score >= 70): これは、「(前のifの条件が正しくなかった場合に)もしscoreが70以上であるならば」という次の条件です。現在のscoreは73なので、70以上という条件は正しい(真である)ことになります。 この条件が正しいため、System.out.println("Bランクです。");という行が実行され、「Bランクです。」と画面に表示されます。この時点で条件が満たされたので、それ以降のelse ifやelseの条件はチェックされずに、if文のブロックは終了します。
もし、scoreが65だった場合はどうなるでしょうか?
最初のif (score >= 80)は偽です。
次のelse if (score >= 70)も偽です。
その次に、else if (score >= 60)という条件がチェックされます。65は60以上なので、この条件は真となり、「Cランクです。」と表示されます。
もし、scoreが50だった場合はどうなるでしょうか?
if (score >= 80)は偽です。
else if (score >= 70)も偽です。
else if (score >= 60)も偽です。
どの条件も満たされなかったため、最後に登場するelseブロックが実行されます。
else:
これは、「(それまでのどのifやelse ifの条件も正しくなかった場合に)それ以外のすべてのケースで」という意味です。scoreが50の場合は、System.out.println("Dランクです。");が実行され、「Dランクです。」と画面に表示されます。
このように、if文、else if文、else文を組み合わせることで、プログラムは複数の条件を上から順番に評価し、最初に条件を満たした処理を実行することができます。システムエンジニアにとって、ユーザーの入力やシステムの状況に応じて適切な処理を選択させるための、非常に基本的ながらも重要なプログラミングの技術となります。
IfExample.java1public class IfExample { 2 public static void main(String[] args) { 3 // 点数が80点以上ならA、70点以上ならB、60点以上ならC、それ以外ならDでランク分けするif文の練習問題 4 int score = 73; 5 6 if (score >= 80) { 7 System.out.println("Aランクです。"); 8 } else if (score >= 70) { 9 System.out.println("Bランクです。"); 10 } else if (score >= 60) { 11 System.out.println("Cランクです。"); 12 } else { 13 System.out.println("Dランクです。"); 14 } 15 } 16} 17
おわりに
今回は、Javaにおけるif文の基本的な書き方と使い方を学び、プログラムの処理を条件によって分岐させる方法を理解しました。if、else if、elseの構文を用いて、条件式が真の場合に特定の処理を実行する仕組みを習得できたと思います。サンプルコードを通して、条件が上から順に評価され、最初に合致した処理が実行されることを確認できました。この条件分岐の技術は、ユーザーの入力やシステムの状況に応じて適切な動作をさせるための、柔軟なプログラム制御の基礎となります。