Java – continueを使わないでループ処理の一部を飛ばす方法
Javaでcontinue
を使わずにループ処理の一部を飛ばすには、if
文を用いて条件を満たす場合に処理をスキップする方法があります。
具体的には、if
文で条件をチェックし、該当する場合は何もせず次のループに進むようにします。
例えば、if
文内でreturn
やbreak
を使わず、単に後続の処理を記述しないことでスキップを実現できます。
if文を活用したスキップ方法
Javaのループ処理において、特定の条件を満たす場合に処理をスキップしたいことがあります。
if
文を使用することで、条件に応じてループ内の処理を制御することができます。
以下に、if
文を使ったスキップ方法のサンプルコードを示します。
public class App {
public static void main(String[] args) {
// 1から10までの数字をループ処理
for (int i = 1; i <= 10; i++) {
// iが5の場合はスキップ
if (i == 5) {
// スキップするためのメッセージ
System.out.println("5はスキップします。");
continue; // ここでスキップ
}
// スキップしない場合の処理
System.out.println(i);
}
}
}
1
2
3
4
5はスキップします。
6
7
8
9
10
このコードでは、1から10までの数字をループ処理しています。
if
文を使って、i
が5のときにスキップする処理を行っています。
スキップする際には、continue
文を使用して、次のループに移行します。
これにより、特定の条件を満たす場合にのみ処理をスキップすることができます。
returnを使ったスキップ方法(メソッド内限定)
Javaでは、メソッド内でreturn
文を使用することで、特定の条件を満たした場合にメソッドの実行を終了し、呼び出し元に戻ることができます。
これを利用して、ループ処理の一部をスキップすることが可能です。
以下に、return
文を使ったスキップ方法のサンプルコードを示します。
public class App {
public static void main(String[] args) {
// 1から10までの数字を処理するメソッドを呼び出す
processNumbers();
}
// 数字を処理するメソッド
public static void processNumbers() {
for (int i = 1; i <= 10; i++) {
// iが5の場合はメソッドを終了
if (i == 5) {
System.out.println("5はスキップします。");
return; // メソッドを終了
}
// スキップしない場合の処理
System.out.println(i);
}
}
}
1
2
3
4
5はスキップします。
このコードでは、processNumbersメソッド
内で1から10までの数字をループ処理しています。
if
文を使って、i
が5のときにreturn
文を実行し、メソッドの処理を終了します。
これにより、5以降の数字は処理されず、スキップされることになります。
return
文はメソッド内でのみ使用できるため、特定の条件でメソッド全体を終了させる際に有効です。
フラグ変数を活用したスキップ方法
フラグ変数を使用することで、特定の条件に基づいてループ内の処理をスキップすることができます。
フラグ変数は、条件が満たされたかどうかを示すためのブール型の変数です。
以下に、フラグ変数を使ったスキップ方法のサンプルコードを示します。
public class App {
public static void main(String[] args) {
// フラグ変数の初期化
boolean skipFlag = false;
// 1から10までの数字をループ処理
for (int i = 1; i <= 10; i++) {
// iが5の場合はフラグを立てる
if (i == 5) {
skipFlag = true; // スキップフラグを立てる
System.out.println("5はスキップします。");
}
// スキップフラグが立っている場合は処理をスキップ
if (skipFlag) {
continue; // 次のループへ
}
// スキップしない場合の処理
System.out.println(i);
}
}
}
1
2
3
4
5はスキップします。
6
7
8
9
10
このコードでは、skipFlag
というブール型のフラグ変数を使用しています。
ループ内でi
が5のときにフラグを立て、その後の処理でフラグが立っているかどうかを確認します。
フラグが立っている場合は、continue
文を使って次のループに移行し、スキップします。
この方法により、条件に基づいて柔軟に処理を制御することができます。
ラベル付きループを使わない方法
Javaでは、ラベル付きループを使用することで、特定のループを明示的に指定してスキップすることができますが、ラベルを使わずにループ処理を制御する方法もあります。
以下に、ラベルを使わずにループ内の処理をスキップする方法のサンプルコードを示します。
public class App {
public static void main(String[] args) {
// 1から3までの外側のループ
for (int i = 1; i <= 3; i++) {
// 1から5までの内側のループ
for (int j = 1; j <= 5; j++) {
// jが3の場合はスキップ
if (j == 3) {
System.out.println("jが3のためスキップします。");
// 内側のループをスキップ
continue; // 次のjの値へ
}
// スキップしない場合の処理
System.out.println("i: " + i + ", j: " + j);
}
}
}
}
i: 1, j: 1
i: 1, j: 2
jが3のためスキップします。
i: 1, j: 4
i: 1, j: 5
i: 2, j: 1
i: 2, j: 2
jが3のためスキップします。
i: 2, j: 4
i: 2, j: 5
i: 3, j: 1
i: 3, j: 2
jが3のためスキップします。
i: 3, j: 4
i: 3, j: 5
このコードでは、外側のループと内側のループを使用しています。
内側のループでj
が3のときにスキップする処理を行っています。
continue
文を使うことで、内側のループの次の反復に移行し、j
が3のときの処理をスキップします。
この方法により、ラベルを使用せずにループの制御を行うことができます。
まとめ
この記事では、Javaにおけるループ処理の一部をスキップする方法について、if
文、return
文、フラグ変数、そしてラベル付きループを使わない方法を紹介しました。
これらの手法を活用することで、特定の条件に基づいて柔軟に処理を制御することが可能になります。
ぜひ、実際のプログラムにこれらのテクニックを取り入れて、より効率的なコードを書くことに挑戦してみてください。