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