繰り返し処理を覚える!Javaのfor文の使い方【初心者向け】

初心者向けにJavaで書くfor文の使い方について解説しています。繰り返し処理は実際の業務でも使える知識なのでぜひ理解しておきましょう。for文の書き方を説明し、実際に書いた実行結果をもとに解説しています。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Javaで書くfor文の使い方について解説しています。

for文の中に書く式は覚えにくいかもしれませんが、何度か書いてみて理解していきましょう。実行結果も一緒に見ながら説明していきます。

Javaについてそもそもよく分からないという方は、Javaとは何なのか解説している記事をまずご覧ください。

 

なお本記事は、TechAcademyのJava講座の内容をもとに作成しています。

 

田島悠介

今回はfor文を勉強するよ。

大石ゆかり

田島メンター!!for文はどのように使うんですか~?

田島悠介

for文は繰り返しで処理を行う場合に使われるんだ。似た機能にwhileというのもあるね。

大石ゆかり

繰り返したら、ずーっと同じ処理が続いちゃうんじゃないですか?

田島悠介

指定次第ではそうなってしまう場合もあるけれど、そうならないようにちゃんと条件を設定してやるんだ。基本の書き方を見てみよう。

 

for文とは

for文はJavaの繰り返し処理のひとつで、指定した条件内で同じ処理を繰り返し行うときに使用します。

 

for文の書き方

for文は以下のように記述します。

for (初期化式; 条件式; 変化式)
{実行する内容;}

初期化式では、変数の宣言と初期化を行います。
例:int i = 1 (変数iに1を設定する)

条件式では、forによる繰り返し処理を行う条件を設定します。
例:i < 5 (iが5より小さい場合まで)

変化式では、forによる繰り返し処理が1回終わるごとに実行される内容を記述します。
例:i += 3 (3ずつ増加させる)

変化式を行った結果が条件式の範囲内に当てはまる場合(trueの状態)のみ”実行する内容”の処理が行われます。変化式による結果が条件式の範囲を超えた場合(falseの状態)、for文による繰り返し処理はそこで終了されます。

そのため、常に結果がtrueになってしまう場合や条件式を設定していない場合は無限ループとなり、永久に処理を行ってしまう状態になります。

 

田島悠介

for文はこの3つの式によって成り立っているんだ。

大石ゆかり

なるほど、「条件式」に当てはまらなくなったらそこで止まるってことですね。

田島悠介

そうだね。もしも他の2つの式が「条件式」にいつまでも到達しない場合は最初に言った通り、永久に処理を行うことになってしまう。

大石ゆかり

結構注意が必要な文なんですね。

 

[PR] Javaで挫折しない学習方法を動画で公開中

実際にfor文を書いてみよう

まず最初に、変数iに1を代入しiが10よりも小さいか等しいまで1ずつ加算させていった場合です。

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

ここでは初期化式がint i=1(整数の変数iに1を代入)、条件式がi <= 10(iが10よりも小さいか等しいまで)、変化式がi++(1ずつ増加させる)となります。

実行結果は以下のようになります。1からひとつずつ数値を増加していき、結果が10になったところで処理が終了します。

java_for_p_1

次に同じ条件で、今度は変化式をi += 2(2ずつ加算させる)状態にしたものです。

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

実行結果は以下のようになります。最初の1から2ずつ加えていったものが結果として表示され、9で処理が終了します。(次の結果11が条件式i <= 10に当てはまらないため)

java_for_p_2

 

無限ループについて

永久に処理がループになってしまう場合の例です。

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

先ほどまでと同じ条件で、今度は変化式をi--(1ずつ減算する)とします。
初期値の1から数値を減算するため、どれだけ変化式を繰り返しても変数は10よりも小さいか等しい値になります。

実行するとこのように、いつまでも処理が終わらない状態になります。この場合は実行している処理を強制的に終了する(コマンドプロンプトの場合はctrl+c)必要があります。

for文による繰り返し処理を行う場合は条件式・変化式の等号、正や負の数などに特に注意することが大切です。

java_for_p_3

 

以上、Javaで書くfor文の使い方について解説しました。

繰り返し処理は実際の作業でもよく使うコードなので、テストで何度か書いてみると覚えやすいでしょう。

 

田島悠介

永久ループになってしまう場合の例もやってみたよ。

大石ゆかり

数値がすごいことになってます!

田島悠介

こうなってしまわないように、演算子の向きや条件式の内容はしっかりと確認しよう。

大石ゆかり

そうですね、気をつけたいです。ありがとうございました!

 

複数のfor文

Javaのfor文について基本的な事を学んだところで、Javaのfor文をfor文の中で使用してみます。

これは実務でも見かける事がありますので、何度も見返していただくことで理解が深まる内容です。

複数のfor文のJavaコード

public class Fukusuu{
  public static void main(String[] args) {
    for(int i = 0; i < 3; i++){
      System.out.println("iの値は" + i + "です。");
        for(int j = 0; j < 3; j++){
          System.out.println("iの中のjのfor!");
        }
    }
  }
}

 

表示結果

iの値は0です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!
iの値は1です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!
iの値は2です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!

ここで重要なのは、最初のfor文となる次の部分です。

for(int i = 0; i < 3; i++){

i++という加算部分は、for文処理の最後に加算されます。

そのため、int i = 0;で指定された変数iの初期値は0から始まり、初回のループ処理(繰り返し処理)では、次のように表示されています。

iの値は0です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!

ここまでは問題ないと思います。

この処理が終了した後、変数iの値に1加算されるため、for文の条件処理である i < 3; を判定する際の変数iの値は1になっています。

したがって2回めの処理は次のようになります。

iの値は1です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!

先ほど同様に、この処理が終了した後の変数iの値に1加算されるため、for文の条件処理である i < 3; を判定する際の変数iの値は2になっています。

iの値は2です。
iの中のjのfor!
iの中のjのfor!
iの中のjのfor!

この表示が終了した後、再度変数iの値に1加算されるため、for文の条件処理である i < 3; を判定する際の変数iの値は3になっています。

その時点で、 i<3; という条件は、変数iが3より小さい場合という条件ですので、変数iが3である現在は、この条件を満たすことができません。

そのため、変数iが3の時は、for文を終了し、今回のプログラムが完了します。

 

Javaの学習サイトもまとめているので、合わせてご覧ください。

また、オンラインのプログラミングスクールTechAcademyでは、Java講座を開催しています。

JavaやServletの技術を使ってWebアプリケーションの開発を学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。