English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 例外処理

Java リスト(リスト)

Java キュー(キュー)

Java Mapコレクション

Java Setコレクション

Java 入出力(I/O)

Java Reader/Writer

Javaの他のトピック

Java if...else文

このチュートリアルでは、Javaの制御フローステートメントについて学び、Javaのifおよびif ... else文を使用して、サンプルの助けにより理解します。

コンピュータプログラミングでは、通常、指定された条件がtrueまたはfalseであるかどうか(実行時にのみ知ることができます)に応じて、特定のコードの一部を実行したいと考えます。その場合、制御フローステートメントを使用します。

Java if(if-then)文

Javaで、if-then文の構文は以下の通りです:

if (expression) {
    // 文
}

これは布尔表現(expression)です。布尔表現はtrueまたはfalseを返します。

  • 表現をtrueと計算した場合、ifを実行します(括弧内の文)本体内部の文

  • 表現の計算結果がfalseの場合、ifの本体内の文はスキップされます。

if文はどのように動作しますか?

Java if文の動作

例1:Java if文

class IfStatement {
    public static void main(String[] args) {
        int number = 10;
        //数字が0より大きいか確認
        if (number > 0) {
            System.out.println("この数字は正数です。");
        }
        System.out.println("この文は常に実行されます。");
    }
}

出力

この数字は正です。
この文は常に実行されます。

上記の例では、numberという名前の変数があります。ここでは、テスト表現がnumberが0より大きいかどうかをチェックします(number > 0)。

numberが0より大きいため、テスト表現の計算結果がtrueです。その結果、if内のコードが実行されます。

今、numberの値を負の整数に変更します。例えば、 -5。

int number = -5;

上記のプログラムをnumberの新しい値で実行すると、以下のように出力されます:

この文は常に実行されます。

ここでは、numberの値が0より小さいため、テスト表現 number > 0の計算結果がfalseです。そのため、if内の文は実行されません。

テスト表現に関する詳細情報を知りたい場合は、Java 比較演算子  およびJava 逻辑演算子

Java if ... else(if-then-else)文

if文のテスト表現の計算結果がtrueの場合、その文が実行するコードの特定部分が実行されます。しかし、テスト表現の計算結果がfalseの場合、何も実行されません。

この場合、オプションのelseコードブロックを使用できます。テスト表現の計算結果がfalseの場合、ブロック内のelse文を実行します。これはJavaでは「if文のelse部分」と呼ばれます。if-then-else文。

if-then-else文の構文は以下の通りです:

if (expression) {
   // コード
}
else {
  // 他のコード
}

ここでは、テスト表現がtrueの場合、プログラムはタスクを実行します(ifブロック内のタスク)、テスト表現がfalseの場合、別のタスク(elseコードブロック内のタスク)を実行します。

Java if... else文はどのように動作しますか?

Java if-else文の動作

例2:Java if else文

class IfElse {
    public static void main(String[] args) {    	
        int number = 10;
        //数字が0より大きいか確認
        if (number > 0) {
            System.out.println("その数字は正です。");
        }
        else {
            System.out.println("その数字は正数ではありません。");
        }
 
        System.out.println("This statement is always executed.");
    }
}

出力

その数字は正です。
この文は常に実行されます。

上記の例では、numberという名前の変数があります。ここでは、テスト表現がnumberが0より大きいかどうかをチェックします(number > 0)。

numberの値が10ですので、テスト式の計算結果はtrueです。したがって、if内のコードを実行します。

今、numberの値を負の整数に変更します。例えば、 -5。

int number = -5;

プログラムを実行すると、numberに新しい値を使用する場合、出力は以下のようになります:

この数字は正数ではありません。
この文は常に実行されます。

ここでは、numberの値は-5です。したがって、テスト式の計算結果はfalseです。したがって、else内のコードを実行します。

Javaのif..else..if文

Javaでは、if ... else ... if 階段文は、複数の他のコードブロックの間でどれか一つを実行するために使用されます。

if (expression1) {
   // コード
}
else if (expression2) {
   // コード
}
else if (expression3) {
   // コード
}
.
.
else {
   // コード
}

ここでは、if文が上から下に実行されます。テスト式がtrueになるまで、if文の実行が続きます。その後、プログラムの制御はifにジャンプします。-else-if階段文の外

すべてのテスト式がfalseの場合、elseブロック内のコードを実行します。

例3:Javaのif..else..if文

class Ladder {
    public static void main(String[] args) {   
        int number = 0;
        //数字が0より大きいか確認 
        if (number > 0) {
            System.out.println("この数字は正数です。");
        }
        //数字が0より小さいか確認
        else if (number < 0) {
            System.out.println("この数字は負数です。");
        }
        else {
            System.out.println("数字は0。");
        } 
    }
}

出力

数字は0です。

上記の例では、変数numberが正数、負数、または0であるかを確認しています。ここでは、2つのテスト式があります:

  • number > 0 - numberが0より大きいか確認

  • number < 0 - numberが0より小さいか確認

ここでは、numberの値は0です。したがって、両方のテスト式の計算結果はfalseです。したがって、elseブロック内の文を実行しました。

Javaのネストされたif..else文

Javaでは、if..else文内にif..else文を含めることもできます。これはネストされたif...else文と呼ばれます。

これは検索3最大の数字を探すプログラム:

例4:ネストされたif ... else文

class Number {
    public static void main(String[] args) {
        //宣言された双精度型変数
        Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largestNumber;
        //n1がn以上かどうか確認します2
        if (n1 >= n2) {
            //if...else文がifブロック内にあります
            // n1がn以上かどうか確認します3
            if (n1 >= n3) {
                largestNumber = n1;
            }
            else {
                largestNumber = n3;
            }
        } else {
            //elseブロック内のif...else文
            //n2がn以上かどうか確認します3
            if (n2 >= n3) {
                largestNumber = n2;
            }  else {
                largestNumber = n3;
            }
        }
        System.out.println("最大の数字は " + largestNumber);
    }
}

出力

最大の数字は 4.5

注意:このプログラムでは、私たちは変数の値を自分で割り当てて、説明を簡略化しました。しかし、実際のアプリケーションでは、これらの値はユーザー入力データ、ログファイル、フォームの提出などから来る可能性があります。

Javaは、三元演算子の特別な演算です。記号これは、if ... else文の簡略化形式です。三元演算子について詳しく知りたい場合は、Java 三元演算子