fc2ブログ
  • 館内放送 [ツイッター]

    キンコンカンコーン・・・うみゃーだよ。館内放送だみゃ。
    ・・・・・キンコンカンコーン・・・ブツ
  • 町内会からのお知らせ [相互RSS]

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


※カテゴリー【技術部】は技術者向けの記事となります。

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の場合 ] という記述も可能。



ご質問、ご意見等ありましたら下記コメントにご投稿お願いいたします。
関連記事
この記事へのリアクション

コメントの投稿

非公開コメント




タグ:技術部JavaIF文認定資格

プロフィール

うみゃー・アパカ

Author:うみゃー・アパカ
UMYA.net公式ブログです。
ツイッター:umya_net


リンクフリーです!
アドレス:http://umyanet.blog.fc2.com/

公式ホームページ

ラインスタンプ配信中!

リンク



スマホアプリ配信中

黄金疾走

スポンサード

人気商品

Powered by amaprop.net