12--プログラム構造(プログラム実行フロー)-構造の選択

一般的に、プログラム構造には、シーケンス構造、選択構造、ループ構造の3種類があり、共通の特徴があり、入口と出口が1つずつあります。単一のエントリと出口により、プログラムが読みやすく、保守しやすく、デバッグしやすくなります。

  1. シーケンス構造:プログラムは上から下に1つずつ実行されます.1つのステートメントが実行された後、次のステートメントは、図に示すように、プログラムが終了するまで実行され続けます。
  2. 選択構造:選択構造は、条件が真であるかどうかに応じて実行するステートメントを決定することです。構造:図に示すように:
  3. ループ構造:ループ構造は、判定条件が確立されているかどうかに応じて、プログラムセクションの実行回数を決定します。このプログラムセクションは、図に示すように、ループ本体と呼ばれます。
    ここに画像の説明を挿入

構造を選択してください

選択構造には、if、if ... elseおよびswitchステートメントが含まれます。プログラムが選択構造とともに追加された後は、「交差点」を追加するようなものです。さまざまな選択に応じて、プログラムはさまざまな結果で実行されます。
ifステートメント
ifステートメント構文:
if(判断条件){ ステートメント1; ... } ifステートメントの本体で処理されるステートメントが1つしかない場合は、左右の中括弧を省略できます。判定条件の値が満たされる(true)と、中括弧内のステートメントが1つずつ実行されます。ifのフロー管理図:ifステートメントの実行手順:(1)式の結果を判断します(2)式の結果がtrueの場合、ステートメントを実行します(3)式の結果がfalseの場合、スキップしますステートメント例1:




ここに画像の説明を挿入




package com.qwy;

public class Demo01 {
    
    
	public static void main(String[] args) {
    
    
		int x=3;
		int y=4;
		System.out.println("*********开始比较**********");
		if(x>y){
    
    
			System.out.println("x比y大");
		}
		if(x<y){
    
    
			System.out.println("x比y小");
		}
		System.out.println("*********结束比较**********");
	}
}

実行結果:
比較開始*
xがy
終了比較*
if…else…ステートメント
構文構造:
if(判断条件){ ステートメント本体1; } else { ステートメント本体2; }



プログラムに分岐判定文がある場合は、if ... else文で処理できます。判定条件が成立すると、if文の本体が実行されます。判定条件が成立しない場合は、 elseが実行された後のステートメントの本体、およびif ... elseのフロー管理図表示:ここに画像の説明を挿入
例2:

package com.qwy;

public class Demo02 {
    
    
	public static void main(String[] args) {
    
    
		int num = 3;
		if (num % 2 == 1) {
    
    
			System.out.println("nums是奇数");
		} else {
    
    
			System.out.println("num是偶数");
		}
	}
}

演算結果:
numsは奇数の
三項演算子(三項演算子)です。if
... elseを使用して変数を割り当てるステートメントと同等の演算子があります。つまり、三項演算子:その形式:variable = judgment調子?式1:式2。
例3:

package com.qwy;

public class Demo03 {
    
    
	public static void main(String[] args) {
    
    
		int max = 0;
		int x = 2;
		int y = 4;
		max = x > y ? x : y;
		System.out.println(max);
	}
}

実行結果:
4実行結果
から、三項演算子の使用はより簡潔になり、if ... elseの長い文字列を1つのステートメントに置き換えることができます。
if ... else if ... elseステートメントif ... elseで
複数の条件を判断する必要がある場合は、if ... else if ... elseステートメントを使用します。その構文は次のとおりです
。if(条件付き判断1){ ステートメント本体1; } else if(条件付き判断2){ ステートメント本体2; } …//複数のelse if()ステートメントelse {ステートメント本体3} if…elseifフロー制御図:例4:







ここに画像の説明を挿入

package com.qwy;

public class Demo04 {
    
    
	public static void main(String[] args) {
    
    
		int x = 5;
		if (x == 1) {
    
    
			System.out.println("x的值是1");
		} else if (x == 2) {
    
    
			System.out.println("x的值是2");
		} else if (x == 5) {
    
    
			System.out.println("x的值是5");
		} else {
    
    
			System.out.println("x的值不在1,2,5中");
		}
	}
}

演算結果:
xの値は5です。switch
ステートメント
が多くの条件の中から判定条件を満たすステートメントを1つ見つけて実行する場合、if ... else連続判定を使用するだけでなく、より便利な方法を使用することもできます。 、つまり、複数の選択肢-switchステートメント。その文法形式:
switch(expression){ case selection value 1:statement body 1; break; case selection value 2:statement body 2; break; ……caseselection value n:statement body n; break; default:statement body; }スイッチフロー制御図:スイッチフロー制御の実行手順:(1)switchステートメントは最初に括弧内の式を計算し、その結果は数値、文字、列挙(JDK1.5以降)、および文字列(JDK1.7以降)になります。 )(2)式の値に応じて、ケースの後ろの選択値と一致するかどうかを確認します。ケースの選択値が一致しない場合は、デフォルトに含まれるステートメントが実行され、switchステートメントが後に残されます。実行。(3)caseの選択された値が式の結果と一致する場合、caseに含まれるステートメントが実行され、switchステートメントはbreakステートメントが終了するまで残されません。(4)caseステートメントの後にbreakステートメントが追加されていない場合、switchステートメントはswitchステートメントが終了するまで実行されます。(5)デフォルトの実行ステートメントが定義されていない場合、何も実行されず、switchステートメントは直接終了します。例5:










ここに画像の説明を挿入






package com.qwy;

public class Demo05 {
    
    
	public static void main(String[] args) {
    
    
		int x = 3;
		int y = 4;
		char oper = '-';
		switch (oper) {
    
    
		case '+': {
    
    
			System.out.println("x+y=" + (x + y));
			break;
		}
		case '-': {
    
    
			System.out.println("x-y=" + (x - y));
			break;
		}
		case '*': {
    
    
			System.out.println("x*y=" + (x * y));
			break;
		}
		case '/': {
    
    
			System.out.println("x+y=" + (x / y));
			break;
		}
		default: {
    
    
			System.out.println("未知的操作");
			break;
		}
		}
	}
}

演算結果:
xy = -1
例6:ブレークの役割を確認する

package com.qwy;

public class Demo06 {
    
    
	public static void main(String[] args) {
    
    
		int x=3;
		int y=4;
		char oper='-';
		switch (oper) {
    
    
			case '+':{
    
    
				System.out.println("x+y="+(x+y));
				//break;
			}
			case '-':{
    
    
				System.out.println("x-y="+(x-y));
				//break;
			}
			case '*':{
    
    
				System.out.println("x*y="+(x*y));
				//break;
			}
			case '/':{
    
    
				System.out.println("x+y="+(x/y));
				//break;
			}
			default:{
    
    
				System.out.println("未知的操作");
				//break;
			}		
		}
	}
}

演算結果:
xy = -1
x * y = 12
x + y = 0
不明な演算

実行結果から、プログラムの最初の条件が満たされた後、対応するbreakステートメントが設定されていないため、プログラムは最初の条件が満たされた位置から実行され、スイッチは次の条件が満たされるまで終了しないことがわかります。最後の条件が実行されます。

おすすめ

転載: blog.csdn.net/qwy715229258163/article/details/113855385