様々なfor文の書き方
Javaのfor文は、色々な書き方が存在します。
様々なfor文の書き方 目次
1.複数のfor文
for文は複数書くことは可能ですし、for文の中にfor文を書くことも可能です。
package pac01; public class HelloWorld { public static void main(String[] args) { for(int i = 0; i < 5; i++){ System.out.println("こんにちは!"); } for(int i = 0; i < 5; i++){ System.out.println("さようなら!"); } } } --------------------------------------------------------- こんにちは! こんにちは! こんにちは! こんにちは! こんにちは! さようなら! さようなら! さようなら! さようなら! さようなら!
for文を2回記述しています。どちらも5回ずつのループですので、合計10回処理が実行されていることが分かります。
2.カウンタ変数の使用
カウンタ変数を、処理の中で使用することが可能です。今回はカウンタ変数は0から初めているので、+1した値を出力してみましょう。
package pac01; public class HelloWorld { public static void main(String[] args) { for(int i = 0; i < 5; i++){ System.out.println("こんにちは!" + (i + 1) + "回目の実行です。"); } for(int i = 0; i < 5; i++){ System.out.println("さようなら!" + (i + 1) + "回目の実行です。"); } } } ---------------------------------------------------------------------------- こんにちは!1回目の実行です。 こんにちは!2回目の実行です。 こんにちは!3回目の実行です。 こんにちは!4回目の実行です。 こんにちは!5回目の実行です。 さようなら!1回目の実行です。 さようなら!2回目の実行です。 さようなら!3回目の実行です。 さようなら!4回目の実行です。 さようなら!5回目の実行です。
上のfor文と下のfor文で、同じ名前のカウンタ変数iを使用していますが、どちらも変数の値は0~4になっていることが分かります。これはなぜかと言うと、変数iはfor文の中で宣言している変数ですので、1つ目のfor文が終了すると1つ目の変数iは無効になり、2つ目のfor文の変数iは、その時にまた改めて宣言されているので、1つ目と2つ目の変数iは全くの別物という扱いになるからです。
3.for文のネスト(入れ子)
for文の中にfor文を書くこともできます。これをネスト(入れ子)と言います。
変数iの処理が1回実行された後に、変数jの処理が3回実行されます。それを変数iのループ回数3回繰り返されることになります。
この場合、変数jのところを変数iにするとエラーになります。変数jの一は、変数iの範囲に含まれているから、同じ名前の変数は付けられないからです。
4.for文で省略可能な書き方
for文では、①カウンタ変数の宣言と初期化、②継続条件の指定、③カウンタ変数の増減、はそれぞれ省略可能です。但し、セミコロンは書かなければなりません。
4-1 カウンタ変数の宣言と初期化を省略する場合
カウンタ変数の宣言と初期化を省略する場合、事前に変わりの変数を用意しておく必要があります。
package pac01; public class HelloWorld { public static void main(String[] args) { int i = 0; for( ; i < 3; i++){ System.out.println("iは" + (i + 1) + "回目の実行です。"); } } } ------------------------------------------------------------------------ iは1回目の実行です。 iは2回目の実行です。 iは3回目の実行です。
5行目で宣言した変数iを、7行目からのfor文の中で使用できていることが分かります。この場合、変数iは、for文が終了した後でも有効ですので注意が必要です。
4-2 継続条件を省略する場合
継続条件を省略した場合、いつまで経っても終了することが無い無限ループになってしまいますので、別の方法でfor文を抜けるようにしないといけません。
わざと無限にする時は、カウンタ変数の宣言も増減も併せて省略することが多いでしょう。
package pac01; public class HelloWorld { public static void main(String[] args) { int i = 0; for(;;){ System.out.println("iは" + (i + 1) + "回目の実行です。"); } } }
何れの場合でも、セミコロンは省略できません。
4-3 カウンタ変数の増減を省略する場合
カウンタ変数の増減を省略する場合は、自分でカウントアップしなければなりません。
package pac01; public class HelloWorld { public static void main(String[] args) { int i = 0; for( ; i < 5; ){ System.out.println("iは" + (i + 1) + "回目の実行です。"); i += 1; } } } ----------------------------------------------------------------------- iは1回目の実行です。 iは2回目の実行です。 iは3回目の実行です。 iは4回目の実行です。 iは5回目の実行です。
省略は便利ですが、無闇に使用すると逆に分かりづらくなりますので気をつけましょう。
最近のコメント