フロー制御ステートメント
プログラムの実行中、さまざまなステートメントの実行シーケンスは、プログラムの結果に直接影響します。言い換えれば、プログラムの流れは、操作の結果に直接影響を及ぼします。したがって、各ステートメントの実行フローについて明確にする必要があります。さらに、多くの場合、完了したい機能を実現するために、ステートメントの実行順序を制御する必要があります。
シーケンス構造:
public static void main(String[] args){
//顺序执行,根据编写的顺序,从上往下运行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
判断の声明
ifステートメント
if(关系表达式) {
语句体;
}
実行プロセス
①まず関係式を判断して、結果が真か偽かを確認する
②真の場合は文本体を実行
③偽の場合は文本体を実行しない
if ... elseステートメント
if(关系表达式) {
语句体1;
} else {
语句体2;
}
実行プロセス
①まず関係式を判断して、結果が真か偽かを確認する
②真の場合はステートメント本体1を実行
③偽の場合はステートメント本体2を実行
if…elseif…else语句
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
} else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
実行プロセス
①最初に条件1を判断して、結果が真か偽かを確認する
②真の場合はステートメント1を実行
③偽の場合は条件2を判断
④真の場合はステートメント2を実行⑤以下同様
。
ステートメントを選択
スイッチステートメント
switch(表达式) {
case 常量值1: 语句体1; break;
case 常量值2: 语句体2; break;
...
default: 语句体n+1; break;
}
実行プロセス
①は、最初に式
②の値を計算し、次にケースと比較します。対応する値があると、対応するステートメントが実行され、実行プロセスでブレークが終了します。
③最後に、すべてのケースが式の値と一致しない場合、デフォルトのステートメントの本体が実行され、プログラムが終了します。
ケースの貫通可能性
switchステートメントでは、ケースの後にブレークが書き込まれない場合、貫通現象が発生します。つまり、次のケースの値は判断されず、ブレークが発生するか、スイッチ全体が終了するまで直接実行されます。 。
ループステートメント
ループステートメントは、ループ条件が満たされたときに特定のコードを繰り返し実行できます。繰り返し実行されるコードはループ本体ステートメントと呼ばれます。ループ本体が繰り返し実行される場合、ループ判定条件を次のように変更する必要があります。 falseでループを終了します。そうでない場合、ループは実行を継続し、無限のループを形成します。
forループステートメント
for(初始化表达式①; 布尔表达式②; 步进表达式④) {
循环体③
}
実行プロセス
実行シーケンス:①②③④>②③④>②③④…②不満。
①ループ変数の初期化を完了します
②ループ条件が満たされているかどうかを判断し、満たされていない場合はループから飛び出します
③特定の実行ステートメント
④ループ後、ループ条件に含まれる変数の変更
whileループステートメント
初始化表达式①
while(布尔表达式②) {
循环体③
步进表达式④
}
実行プロセス
実行シーケンス:①②③④>②③④>②③④…②不満。
①ループ変数の初期化を完了します。
②サイクル条件が満たされているかどうかを判断する責任があり、満たされていない場合はサイクルから飛び出します。
③特定の実行ステートメント。
④ループ後、ループ変数の変更
do ... whileループステートメント
初始化表达式①
do {
循环体③
步进表达式④
} while(布尔表达式②);
実行プロセス
実行シーケンス:①③④>②③④>②③④…②不満。
①ループ変数の初期化を完了します。
②サイクル条件が満たされているかどうかを判断する責任があり、満たされていない場合はサイクルから飛び出します。
③特定の実行ステートメント
④ループ後、ループ変数の変更
は…whileループの特徴
ループ条件を直接falseと記述しても、ループ本体を無条件に1回実行しても1回ループします。このようなループには一定のリスクがあるため、初心者はdo ... whileループを使用することをお勧めしません。
ジャンプステートメント
ジャンプステートメントは、ループ実行中のプログラムフローのジャンプを実現するために使用されます。
ブレークステートメント
使用シナリオ:スイッチまたはループを終了する
①選択した構造のスイッチステートメント内②
ループステートメント内
public static void main(String[] args) {
int x = 1;
while(x <= 4) {
System.out.println("x="+x);
if(x == 3) {
break; //条件成立则跳出循环
}
x++;
}
}
ステートメントを続ける
使用シナリオ:このサイクルを終了し、次のサイクルに進みます
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 100; i++) {
if(i % 2 == 0) {
continue; //结束本次循环
}
sum = sum + i; //求1~100之间的奇数求和
}
System.out.println("sum= "+sum);
}
エンドレスループ
つまり、ループ内の条件は常に真であり、エンドレスループは決して終了しないループです。
while(true) {
System.out.println("死循环了.....");
}
ネストされたループ
いわゆるネストされたループは、あるループの本体が別のループの本体であることを意味します。たとえば、ネストされたループであるforループ内にforループがあります。総サイクル数=外部サイクル数*内部サイクル数
for(初始化表达式①; 循环条件②; 步进表达式⑦) {
for(初始化表达式③; 循环条件④; 步进表达式⑥) {
执行语句⑤;
}
}
ネストされたループの実行プロセス:
実行シーケンス:①②③④⑤⑤>④⑤⑤>すこと。
たとえば、ロープをスキップします。ジャンプには5つのグループがあり、各グループに10のジャンプがあります。5つのグループが外側のループで、10のグループが内側のループです。