for文

スポンサーリンク
アイキャッチjava All

for文とは

for文は、ある処理を繰り返し実行するための文法の一つです。for文を使うことで、同じ処理を複数回簡単に実行することができます。

具体例

"Hello, World!"というメッセージが、5回繰り返し表示する場合、以下のようにfor文を書くことができます。

※構文は下で説明しますのでざっくりみてください。

public class Sample {
    public static void main(String[] args) {
        int num = 5; // 繰り返す回数を指定する変数num
        for (int i = 0; i < num; i++) { // num回だけ繰り返すforループ
            System.out.println("Hello, World!"); // 「Hello, World!」というメッセージを表示する
        }
    }
}

for文の基本的な書き方

for文の基本的な書き方は、以下のようになります。

for文の基本構文
for (初期化式; 条件式; 更新式) {
    // 処理
}

初期化式

初期化式は、for文を実行する前に一度だけ実行されます。変数の初期化を行う場合に使用します。

条件式

条件式は、繰り返し処理を行うための条件を指定します。

条件式が真(true)の場合に処理が実行され、偽(false)の場合には処理が終了します。

条件式の部分には、比較演算子を用いて大小を比較することができます。

例えば、><などの演算子を使うことができます。

更新式

更新式は、繰り返し処理を行った後に実行されます。変数の更新を行う場合に使用します。

for文の処理の流れ

for文の特徴

  1. 初期化式を実行する
  2. 条件式を評価する
  3. 条件式が true の場合、繰り返し処理を実行する
  4. 更新式を実行する
  5. 再度条件式を評価する
  6. 条件式が true である限り、3-5を繰り返す
  7. 条件式が false になると、for文の処理を終了する

for文を使用する例

例えば、1から10までの数値を表示する場合、以下のようにfor文を使用することができます。

public class Sample {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
    }
}

このプログラムの解説は以下の通りです。

初期化式:変数iを1で初期化しています。初期化式はfor文の最初に1回だけ実行されます。

条件式:iが10以下の間、for文が繰り返されます。条件式は、for文の最初に1回だけ評価され、trueである限りfor文は繰り返されます。

更新式:iが1から10まで順番に表示されるために、iを1ずつ増やしています。更新式は、for文の最後に毎回実行されます。

つまり

①初期化式から変数iを1で初期化する

②条件式からiが10以下の場合、trueとなりブロック内の処理を実行する

③更新式からi++を行いiは2となる

④再び条件式からiが10以下の場合、trueとなりブロック内の処理を実行する

⑤更新式からi++を行いiは3となる

⑥条件式がfalseとなること、つまりiが10より上になるまで繰り返す

というプログラムになります。

このように、for文には初期化式、条件式、更新式という3つの要素が必要であり、それらの要素がうまく使われることで、特定の回数だけ繰り返したり、ある条件が成り立つまで繰り返したりすることができます。

for文の注意点

無限ループに注意する

for文は、条件が真である限り繰り返されます。

しかし、誤って条件が永遠に真になるようなコードを書いてしまいます。

これをプログラムの無限ループと言います。

無限ループに陥位ると処理が終了しなくなってしまいます。

これは非常に危険な状態であり、プログラムの正常な動作を阻害する可能性があります。

例えば、以下のようなコードでは、変数iの値が0より小さい場合、条件が真となり、ループが無限に繰り返されてしまいます。

public class Sample {
    public static void main(String[] args) {
        for(int i = 10; i < 0; i++) {
            System.out.println(i);
        }
    }
}

このような無限ループを防ぐためには、条件式を注意深く書き、正しい条件を設定する必要があります。

変数のスコープに注意する

for文内で宣言された変数は、ループの外部からアクセスできなくなります。

これを変数のスコープと呼びます。

このため、for文内で宣言された変数をループの外部で使用する場合は、ループの外部で変数を宣言しておく必要があります。

例えば、以下のようなコードでは、for文内で宣言された変数iは、ループの外部からアクセスできません。

public class Sample {
    public static void main(String[] args) {
        for(int i = 0; i < 10; i++) {
            System.out.println(i);
        }
        System.out.println(i); // エラーが発生する
    }
}

これを回避するには、ループの外部で変数を宣言しておく必要があります。

public class Sample {
    public static void main(String[] args) {
        int i;
        for(int i = 0; i < 10; i++) {
            System.out.println(i);
        }
        System.out.println(i); // 10が出力される
    }
}

コメント

タイトルとURLをコピーしました