Javaの制御構造

1. 概要

最も基本的な意味では、プログラムは命令のリストです。 *制御構造とは、これらの命令をたどるパスを変更できるプログラミングブロックです。*
このチュートリアルでは、Javaの制御構造を調べます。
  • 3種類の制御構造があります:*

  • 条件分岐。これは、2つ以上を選択するために*を使用します
    パス。* Javaには、if / else / else if _、 ternary operator_、および_switch_の3つのタイプがあります。

  • 複数の値/オブジェクトを*繰り返し処理するために使用されるループ
    特定のコードブロックを繰り返し実行します。* Javaの基本的なループタイプは、for _、 while_、および_do while_です。

  • 分岐ステートメント。これは、制御フローを変更するために使用されます。
    loops。* Javaには、_break_と_continue_の2つのタイプがあります。

2. If / Else / Else If

_if / else_ステートメントは、https://www.baeldung.com/java-if-else [最も基本的な制御構造]ですが、プログラミングにおける意思決定のまさに基礎と考えることもできます。
_if_は単独で使用できますが、最も一般的な使用シナリオは、_if / else_を使用して2つのパスを選択することです。
if (count > 2) {
    System.out.println("Count is higher than 2");
} else {
    System.out.println("Count is lower or equal than 2");
}
*理論的には、_if / else_ブロックを無限に連鎖またはネストできますが、これによりコードが読みにくくなるため、お勧めしません。*
この記事の残りの部分では、代替ステートメントを検討します。

3. 三項演算子

  • link:/java-ternary-operator [三項演算子を使用]は、_if / else_ステートメントのように機能する省略表現として使用できます。*

    _if / else_の例をもう一度見てみましょう。
if (count > 2) {
    System.out.println("Count is higher than 2");
} else {
    System.out.println("Count is lower or equal than 2");
}
次のように3項でこれをリファクタリングできます。
System.out.println(count > 2 ? "Count is higher than 2" : "Count is lower or equal than 2");
3進法はコードをより読みやすくするための優れた方法ですが、_if / else._の代わりになるとは限りません。

4. スイッチ

*複数のケースから選択する場合は、a__switch ___statementを使用できます。*
簡単な例をもう一度見てみましょう。
int count = 3;
switch (count) {
case 0:
    System.out.println("Count is equal to 0");
    break;
case 1:
    System.out.println("Count is equal to 1");
    break;
default:
    System.out.println("Count is either negative, or higher than 1");
    break;
}
3つ以上の__if / else __statementsは読みにくい場合があります。 考えられる回避策の1つとして、上記のように__switch、__を使用できます。
また、使用する前に覚えておく必要があるlink:/java-switch[__switch __has scopeと入力の制限]にも留意してください。

5. ループ

*同じコードを連続して複数回繰り返す必要がある場合は、https://www.baeldung.com/java-loops [loops]を使用します。*
比較可能な_for_および_while_タイプのループの簡単な例を見てみましょう。
for (int i = 1; i <= 50; i++) {
    methodToRepeat();
}

int whileCounter = 1;
while (whileCounter <= 50) {
    methodToRepeat();
    whileCounter++;
}
上記の両方のコードブロックは、_methodToRepeat_を50回呼び出します。

6. ブレーク

*ループから早く終了するにはlink:/java-continue-and-break[_break_]を使用する必要があります。*
簡単な例を見てみましょう。
List<String> names = getNameList();
String name = "John Doe";
int index = 0;
for ( ; index < names.length; index++) {
    if (names[index].equals(name)) {
        break;
    }
}
ここでは、名前のリストから名前を探しています。名前が見つかったら、検索を停止します。
通常、ループは完了しますが、ここでは__break_を使用してそれを短絡し、早期に終了します。

7. 持続する

簡単に言えば、link:/java-continue-and-break[_continue_] *現在のループの残りをスキップすることを意味します:*
List<String> names = getNameList();
String name = "John Doe";
String list = "";
for (int i = 0; i < names.length; i++) {
    if (names[i].equals(name)) {
        continue;
    }
    list += names[i];
}
ここで、重複した_names_をリストに追加します。
*ここで見たように、__ break __and _continue_は反復するときに便利ですが、_return_ステートメントやその他のロジックで書き換えることができます。*

8. 結論

この簡単な記事では、制御構造とは何か、そしてそれを使用してJavaプログラムのフロー制御を管理する方法を学びました。
この記事に記載されているすべてのコードは、https://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-lang [GitHub上]で入手できます。