Java ブランチ構造


逐次構造は逐次実行しかできず、判断や選択ができないので、分岐構造が必要です。

Java には 2 つのブランチ構造があります:

  • if ステートメント

  • switch ステートメント


if ステートメント

if ステートメントには、ブール式と 1 つ以上のステートメントが含まれます。

構文

If ステートメントの構文は次のとおりです:

if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}

ブール式の値が true の場合、if ステートメント内のコード ブロックが実行されます。それ以外の場合は、If ステートメント ブロックに続くコードが実行されます。

public class Test {

   public static void main(String args[]){
      int x = 10;

      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}

上記のコードをコンパイルして実行した結果は次のとおりです:

这是 if 语句

if...else ステートメント

if ステートメントのブール式の値が false の場合、if ステートメントの後に else ステートメントを続けることができます。 、else ステートメント ブロックが実行されます。

文法

if...else は次のように使用されます:

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

public class Test {

   public static void main(String args[]){
      int x = 30;

      if( x < 20 ){
         System.out.print("这是 if 语句");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

上記のコードのコンパイルと実行結果は次のとおりです:

这是 else 语句

if...else if...else ステートメント

if ステートメントの後に elseif... else ステートメントを続けることができ、このステートメントは考えられるさまざまな状況を検出できます。

if、else if、else ステートメントを使用する場合は、次の点に注意する必要があります:

  • if ステートメントには多くても 1 つの else ステートメントがあり、else ステートメントはすべての elseif ステートメントの後に来ます。

  • if ステートメントには複数の elseif ステートメントを含めることができ、それらは else ステートメントの前に置く必要があります。

  • else if ステートメントの 1 つが true を検出すると、他の else if ステートメントと else ステートメントの実行はスキップされます。

文法

if...else 構文形式は次のとおりです:

if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

public class Test {

   public static void main(String args[]){
      int x = 30;

      if( x == 10 ){
         System.out.print("Value of X is 10");
      }else if( x == 20 ){
         System.out.print("Value of X is 20");
      }else if( x == 30 ){
         System.out.print("Value of X is 30");
      }else{
         System.out.print("This is else statement");
      }
   }
}

上記のコードのコンパイルと実行結果は次のとおりです:

Value of X is 30

ネストされた if...else ステートメント

使用ネストされた if-else このステートメントは正当です。これは、if ステートメントまたは elseif ステートメントを別の if ステートメントまたは elseif ステートメント内で使用できることを意味します。

構文

ネストされた if...else 構文形式は次のとおりです:

if(布尔表达式 1){
   ////如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      ////如果布尔表达式 2的值为true执行代码
   }
}

if ステートメントと同じように、else if...else をネストできます。

public class Test {

   public static void main(String args[]){
      int x = 30;
      int y = 10;

      if( x == 30 ){
         if( y == 10 ){
             System.out.print("X = 30 and Y = 10");
          }
       }
    }
}

上記のコードをコンパイルして実行した結果は次のとおりです:

X = 30 and Y = 10

switch ステートメント

switch ステートメントは、変数が一連の値内の値と等しいかどうかを判断します。各値は と呼ばれます。支店。

文法

switch 構文形式は次のとおりです:

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

switch ステートメントには次の規則があります:

  • switch ステートメントの変数タイプは、byte、short、int、または char のみです。

  • switch ステートメントには複数の case ステートメントを含めることができます。各ケースの後には、比較する値とコロンが続きます。

  • case ステートメントの値のデータ型は変数のデータ型と同じである必要があり、定数またはリテラル定数のみにすることができます。

  • 変数の値が case ステートメントの値と等しい場合、case ステートメント以降のステートメントの実行が開始され、break ステートメントが表示されるまで switch ステートメントは飛び出しません。 3

  • switch ステートメントは、break ステートメントに遭遇すると終了します。プログラムは switch ステートメントの次のステートメントにジャンプして実行されます。 case ステートメントには、break ステートメントを含める必要はありません。 Break ステートメントが表示されない場合、プログラムは Break ステートメントが表示されるまで次の case ステートメントの実行を続けます。

  • switch ステートメントにはデフォルトのブランチを含めることができます。これは switch ステートメントの最後のブランチである必要があります。 no case ステートメントの値が変数値と等しい場合、default が実行されます。デフォルトのブランチには、break ステートメントは必要ありません。

public class Test {

   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';

      switch(grade)
      {
         case 'A' :
            System.out.println("Excellent!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

上記のコードをコンパイルして実行した結果は次のとおりです:

Well done
Your grade is C