
【技術部】Javaの仕様を総点検!!~ IF文編 ~ 【試験勉強のお供に】

※カテゴリー【技術部】は技術者向けの記事となります。
※当記事はJava7をベースにしております。異なるバージョンでは挙動が違う可能性がありますのでご注意ください。
![]() |
Java の仕様について総点検しましょう。認定資格の受験勉強等にもお役立ていただけます。 |
![]() |
今回は IF文についてです。IF文、意外と奥が深いですよ。 |
【目的】
Java IF文の仕様を理解する。
※当記事はJava7をベースにしております。異なるバージョンでは挙動が違う可能性がありますのでご注意ください。
まずは基本から
if(1 < 2) { System.out.println("True"); } else { System.out.println("False"); }出力結果 True 解説 if()内の条件式を評価し、条件に合う場合は直下の処理を行い、合わない場合はelseの処理を行う。
基本データ型の == 判定
int A = 1 , B = 1; if(A == B) { System.out.println("True"); } else { System.out.println("False"); }出力結果 True 解説 基本データ型であるint型同士の==は同じ値であればTrueとなる。
基本データ型 型違いの比較
int A = 1; long B = 1; if( A == B ) { System.out.println("True"); } else { System.out.println("False"); }出力結果 True 解説 intとlongは違う型であるが、どらも同じ基本データ型なので有効。
参照型の == 判定
String A = new String("Test"); String B = new String("Test"); if(A == B) { System.out.println("True"); } else { System.out.println("False"); }出力結果 False 解説 参照型同士の==はアドレスが同じであるかの評価となる。
同じ値であっても違うアドレスであるのでFalseとなる。
参照型の値比較は equals関数 で。
String A = new String("Test"); String B = new String("Test"); if( A.equals(B) ) { System.out.println("True"); } else { System.out.println("False"); }出力結果 True 解説 equals関数を使うと、文字列の比較となる。
And条件 & の場合
private static void main(String[] args){ int A = 0 , B = 1; if( A == B & sub_001() ) { System.out.println("True"); } } private static boolean sub_001(){ System.out.println("sub_001実行"); return true; }出力結果 sub_001実行 解説 And条件に & を使用した場合、最初の条件式(A == B)で False 判定となっても、後続の処理(sub_001())を実行する。
And条件 && の場合
private static void main(String[] args){ int A = 0 , B = 1; if( A == B && sub_001() ) { System.out.println("True"); } } private static boolean sub_001(){ System.out.println("sub_001実行"); return true; }出力結果 [メッセージなし] 解説 And条件に && を使用した場合、最初の条件式(A == B)で False 判定となると、後続の処理(sub_001())を実行しない。 ちなみに・・・ Or条件も同様です。 | で実行する。 || で後続処理を実行しない。
条件式内の戻り値はboolean型であること。
if( 1 ) { System.out.println("True"); } else { System.out.println("False"); }出力結果 コンパイルエラー 解説 IF分の条件式内はboolean型を返却しないといけない。 それ以外の型が返却された場合、コンパイルエラーとなる。
IF文内の変数代入。boolean型ならOK
boolean A; if( A = true ) { System.out.println("True"); } else { System.out.println("False"); } if( A = false ) { System.out.println("True"); } else { System.out.println("False"); }出力結果 True False 解説 boolean型の変数への代入のみ、戻り値がboolean型となることからエラーにならない。
else if の評価について
int A = 2; if( A <= 0 ) { System.out.println("0"); } else if( A <= 1) { System.out.println("1"); } else if( A <= 2) { System.out.println("2"); } else if( A <= 3) { System.out.println("3"); } else { System.out.println("else"); }出力結果 2 解説 1番上の条件式から評価していき、最初にマッチした処理を行う。 それ以降の条件式は評価しない。(条件にマッチしても無視する。)
演算条件式
int num = 20; String str; str = num < 10 ? "10未満" : "10以上"; System.out.println(str);出力結果 10未満 解説 [ 条件式 ? Trueの場合 : Falseの場合 ] という記述も可能。 ご質問、ご意見等ありましたら下記コメントにご投稿お願いいたします。
- 関連記事
-
- 【技術部】Javaの仕様を総点検!!~ ポリモーフィズム編 ~ 【試験勉強のお供に】
- 【技術部】Javaの仕様を総点検!!~ 継承、実装編 ~ 【試験勉強のお供に】
- 【技術部】Javaの仕様を総点検!!~ IF文編 ~ 【試験勉強のお供に】
- 【技術部】[Android開発] ActivityからFragmentを生成し、変数も受け渡す手順
- 【技術部】[C++] C++でのExcel操作まとめ
- この記事へのリアクション
コメントの投稿
タグ:技術部JavaIF文認定資格