学生向けプログラミング入門

学生向けにプログラミングを解説。Java、C++、Ruby、PHP、データベース

Javaプログラミング入門その6 繰り返しのプログラム for

<<前  [TOP]  次>>


メモ帳を開いて次の繰り返しのプログラムを作ってみましょう。


ForTest.java 直

public class ForTest { 
	public static void main ( String argv[] ) { 

		for ( int i=0; i<10; i++ ) { 
		System.out.println ( "ようこそ!Javaの世界へ!" ); 
		} 
	} 
} 



このプログラムは、for文という構文を使っています。

for(型の指定; 条件; 繰り返し条件; ) {

     実行文
}



「型の指定」の部分で初期値の型の宣言や値の代入を行います。
「条件」に当てはまっていれば繰り返しを続けます。
「繰り返し条件」は一つの繰り返しが終わった後にどうするかを記述します。


ではプログラムを見ていきましょう。
変数 i は初期値で0を宣言しています。
「条件」(i < 10)を満たしているので、そのままループに入ります。
「ようこそ!Javaの世界へ!」というメッセージがプリントされたらループを抜けます。
ループを抜ける際に、「繰り返し条件」に書かれた部分(i++)が実行されます。
つまり、次にループに入ったときの変数 i の値は1になっているわけです。
このように、ループが繰り返されるたびに変数 i の値はインクリメントされ、「条件」(i < 10)に当てはまらなくなったらループを抜けます。


メッセージは全部で10個表示されます。


これを、While文で書き換えると次のようになります。

i=0;

 while(i<10) {
    system.out.plintln("ようこそ!Javaの世界へ!");
    i++;
 }



出力結果です。





他にも色々な繰り返しのプログラムを作ってみましょう。


ForTest2.java 直

public class ForTest2 { 
	public static void main ( String[] args ) { 

		System.out.println ( "まだループの外です。" ); 

		for( int count=0; count < 10; count++ ) { 
			System.out.println ( "ループの中です。:" + count ); 
		} 
		System.out.println ( "ループの外に出ました。" ); 
	} 
} 



今回は変数countを「繰り返し条件」でインクリメントしています。
その様子をプリントして表示しています。


出力結果です。





メモ帳を開いて次の繰り返しのプログラムを作ってみましょう。


ForTest3.java 直

public class ForTest3 { 
	public static void main ( String[] args ) { 

		for ( ; ; ) { 
			double x = Math.random(); 
			System.out.println ( "x=" +x ); 
	
				if ( x > 0.5 ) { 
					break;
				} 
		}
		System.out.println ( "ブレイクしてループを抜けました。" ); 
	} 
} 



このプログラムは無限ループの記述です。
条件を何も記述しない場合、無限ループになります。


この場合、ループの中に「break;」を記述しなければループを抜けることができません。
for文の括弧の中のセミコロン(;)2つは省略することができませんので必ず記述してください。


出力結果です。





メモ帳を開いて次の二重ループするプログラムを作ってみましょう。


ForTest4.java 直

public class ForTest4 { 
	public static void main ( String[] args ) { 

		for ( int x=1; x<=9; x++ ) { 
			for ( int y=1; y<=9; y++ ) {

				if( x*y < 10 )
					System.out.print( " " ); 
					System.out.print ( x*y + " " );
			} 
			System.out.println ( "" );
		} 
	} 
} 



では、プログラムの内容をみていきましょう。


javaではループの中でループを記述することができます。
これは、九九を表示するプログラムです。


まず、変数xの値は1をとっています。
そのまま、もう一つのループに入ります。
変数 y の値が1〜9まで繰り返された後にループを抜けて、今度は変数xの値が2になります。
変数xの値が2のまま、変数yの値が1〜9まで繰り返され、ループを抜けて変数xの値が3になります。
この作業を最後まで繰り返すと九九の表ができあがります。


ここで、if文を使っている次の文を見てください。

if( x*y < 10 )
    System.out.print( " " ); 
    System.out.print ( x*y + " " );
 } 



これは、10未満の値(一桁の値)のときの条件を記述しています。
表にしたときにずれると嫌なので、一桁の場合数字の前に半角スペースを一つ入れるような処理をしています。
そうすることによって、表の数字が縦横きれいに揃います。


出力結果を見てみましょう。





メモ帳を開いて次の二重ループするプログラムを作ってみましょう。


ForTest5.java 直

public class ForTest5 { 
	public static void main ( String[] argv ) { 

		for ( int x=1; x<=20; x++ ) {

				if( x < 10 )
				System.out.print( " " );
				System.out.print( x + ":" );

			for( int y=1; y<=x; y++ ) { 

				if( x%y == 0 ) { 
				System.out.print( y + "," );
				}
			}
			System.out.println( "" );
		}
	}
}



このプログラムは約数を求めるプログラムです。
約数とは割り切ることができる数字です。
例えば、8は1と2と4と8で割り切れますから、約数は1、2、4、8の4つとなるわけです。


このプログラムも二重ループを使っています。
最初のループでは変数xが1から20になるまで繰り返されます。
内のループは変数yの値が1からy=xになるまで繰り返されます。


ここで、次の文を見てください。

if( x%y == 0 ) { 
    System.out.print( y + "," );
 }



これが実際に約数を求めている部分になります。
もし、x÷yの余りが0(ゼロ)の場合という意味です。


実行結果は次のようになります。





メモ帳を開いて次の二重ループするプログラムを作ってみましょう。


ForTest6.java 直

public class ForTest6 { 
	public static void main ( String[] args ) {

		for ( int x=1; x<=9; x++ ) { 
			for ( int y=1; y<=x; y++ ) { 
				System.out.print ( "*" ); 
			} 
			System.out.println ( "" ); 
		} 
	} 
}



二重ループで「*」を表示させ、三角形を表示させるプログラムです今までのプログラムがわかればこの内容もわかると思います。





このプログラムの一行を書き換えて、出力結果を逆三角形にしてみます。


ForTest6_2.java 直

public class ForTest6_2 { 
	public static void main ( String[] args ) {

		for ( int x=9; x>0; x-- ) { 
			for ( int y=1; y<=x; y++ ) { 
				System.out.print ( "*" ); 
			} 
			System.out.println ( "" ); 
		} 
	} 
}






<<前  [TOP]  次>>