Presentation is loading. Please wait.

Presentation is loading. Please wait.

山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.

Similar presentations


Presentation on theme: "山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文."— Presentation transcript:

1 山元進

2  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文

3 for ( 初期化 ; 継続条件 ; 更新処理 ) { 繰り返し行う処理 } 何回も繰り返す処理を簡単に記述できる ※ 繰り返し行う処理が 1 文であるばあい、 { } で括る必要はない。しかし、形式を整 えるため、いつでも { } を入れておいた方 が良い。

4 初期化 繰り返し行う処理 ({ } の中の処理 ) 継続条件 更新処理 for 文の次の文へ true false for 初めに継続条件が false だと、 一度も「繰り返し行う処理」を実行せずに終了

5 class Sample1 { public static void main(String[] args) { for( int i=1; i<=5; i++ ) { // for 文中で宣言した変数 i は、 for 文の中 // でしか利用できない。このブロックは for 文の中 System.out.println(" 繰り返しています。 "); } System.out.println(" 繰り返しが終わりました。 "); }

6 init i=1 System.out.println (" 繰り返しています。 ") i<=5 ? i++ System.out.println(" 繰り返しが終わりました。 ") true false for

7 class Sample2 { public static void main(String[] args) { for( int i=1; i<=5; i++ ) { // 最初に実行するとき i=1 // 更新部分に i++ → 繰り返す度に i がインクリメント System.out.println(i + " 番目の繰り返しです。 "); } System.out.println(" 繰り返しが終わりました。 "); } for 文中で変数を使うと、繰り返し回数などが示せる

8 class Sample2_1 { public static void main(String[] args) { int i;// for 文の外で繰り返し回数の変数 i を定義することも 可 for( i=0; i<5; i++ ) { // for 文の初期化は変数の宣言ではなくても良い System.out.println((i+1)+" 番目の繰り返しです。 "); } System.out.println(i+" 回繰り返しました。 "); // for 文の外で繰り返し回数の変数 i を定義すると、 // for 文が終わった後も変数 i が利用できる // (cf: 変数のスコープ, 生存期間 ) }

9 import java.io.*; class Sample3 { public static void main(String[] args) throws IOException { System.out.println(" いくつ * を出力しますか? "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String str = br.readLine(); // キーボードからの入力 int num = Integer.parseInt(str); // 整数に変換 for( int i=1; i<=num; i++ ) { // 入力した回数だけ繰り返 す System.out.print("*"); }

10 import java.io.*; class Sample4 { public static void main(String[] args) throws IOException { System.out.println(" いくつまでの合計を求めますか? "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String str = br.readLine(); // キーボードからの入力 int num = Integer.parseInt(str); // 整数に変換 int sum = 0; // この sum の宣言は for 文の中に入れられない for( int i=1; i<=num; i++ ) { // 入力した回数だけ繰り返す sum += i; } System.out.println("1 から "+num+" までの合計は "+sum+" です。 "); }

11 while( 継続条件 ) { 継続条件が true の間、繰り返し行う処理 } while 文で継続条件が true である間、繰り返 す処理が記述できる。 条件の記述に気をつ ける。 ※ 繰り返し行う処理が 1 文であるばあい、 { } で括る必要はない。しかし、形式を整えるた め、いつでも { } を入れておいた方が良い。

12 繰り返し行う処理 ({ } の中の処理 ) 継続条件 while 文の次の文へ true false while

13 class Sample5 { public static void main(String[] args) { int i=1; while( i<=5 ) { System.out.println(i+" 番目の繰り返しです。 "); i++; } System.out.println(" 繰り返しが終わりました。 "); }

14 System.out.println (i+" 番目の繰り返しです。 "); i++; i<=5 ? System.out.println(" 繰り返しが終わりました。 ") true false while

15 while( 継続条件 ){ } は for ( ; 継続条件 ; ){ } と同じ

16 class Sample5_2 { public static void main(String[] args) { int i=1; for( ; i<=5; ) { System.out.println(i+" 番目の繰り返しです。 "); i++; } System.out.println(" 繰り返しが終わりました。 "); }

17  更新処理を忘れをしやすい  → 永久に終わらない class Sample5_3 { public static void main(String[] args) { int i=1; while( i<=5 ) { System.out.println(i+" 番目の繰り返しです。 "); //i++; } System.out.println(" 繰り返しが終わりました。 "); }

18 do { 継続条件が true の間、繰り返し行う処理 } while( 継続条件 ) ; while () { } とは継続条件評価の順序が違う → 最低 1 回は { } 内の処理が行われる ※ 繰り返し行う処理が 1 文であるばあい、 { } で括る必要はない。しかし、形式を整 えるため、いつでも { } を入れておいた方 が良い。

19 繰り返し行う処理 ({ } の中の処理 ) 継続条件 do~while 文の次の文へ true false while do

20 class Sample6 { public static void main(String[] args) { int i=1; do { System.out.println(i+" 番目の繰り返しです。 "); i++; } while( i<=5 ); System.out.println(" 繰り返しが終わりました。 "); }

21  入れ子 = マトリョーシカ  マトリョーシカの中には小さなマトリョーシ カ  典型的には for 文の中に for 文 : ネスト  if 文中に if 文などもネストという  何段ネストしているか把握しやすく  → インデント ( 字下げ )  for 文中に if 文などもネストと同様にインデ ント  for 文ネスト : 多重の繰り返し処理記述可 能

22 http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:JapaneseNestingDolls.jpg (2010 Oct. 18) から引用

23 http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%88%E3%83%AA%E3%83%A7%E3%83%BC%E3%82%B7% E3%82%AB%E4%BA%BA%E5%BD%A2 (2010 Oct. 18) から引用

24 class Sample7 { public static void main(String[] args) { for(int i=0; i<5; i++){ for(int j=0; j<3; j++){ System.out.println("i は "+i+":j は "+j); }

25 class Sample8 { public static void main(String[] args) { boolean bl=false; for(int i=0; i<5; i++){ for(int j=0; j<5; j++){ if(bl){ System.out.print("-"); bl=false; }else{ System.out.print("*"); bl=true; } System.out.print("\n"); }

26 import java.io.*; class Sample9 { public static void main(String[] args) throws IOException { System.out.println(" 何回目でループを中止しますか (1~10) ? "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String str = br.readLine(); // キーボードからの入力 int res = Integer.parseInt(str); // 整数に変換 for( int i=1; i<=10; i++ ) { // 本来 10 回繰り返す System.out.println(i+" 回目の処理です。 "); if( i==res ) break; // switch 文の break; と同じ意味 }

27 import java.io.*; class Sample11 { public static void main(String[] args) throws IOException { System.out.println(" 何回目の処理を飛ばしますか (1~10) ? "); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String str = br.readLine(); // キーボードからの入力 int res = Integer.parseInt(str); // 整数に変換 for( int i=1; i<=10; i++ ) { // 本来 10 回繰り返す if( i==res ) continue; // 入力した回の処理を飛ばす System.out.println(i+" 回目の処理です。 "); }

28  break;  即座に for 文を抜ける  continue;  繰り返し処理の残りの部分をスキップする for (int i=0; i < 10 ; i++) { 処理 1 … if ( i==8 ) break; if ( i==5 ) continue; 処理 2 … } 5 <= i <= 8 の場合 処理 1 は実行され、処理 2 は実行されない i=8 で for 文を抜けるので、残りの (i==9 の ) 処理 1 も処理 2 も実行されない

29  for 文を使うと,繰り返し処理ができる.  while 文を使うと,繰り返し処理ができる.  do~while 文を使うと,繰り返し処理がで きる.  文はネストすることができる.  break 文を使うと,繰り返し文または switch 文のブロックを抜け出す.  continue 文を使うと,繰り返し文の最初 に戻って次の繰り返し処理にうつる.

30  以下のプログラムを 、 ( ) 内に指定した文を利 用して作成せよ  適当な正の整数 N を入力し、 N を十進表示したと きに、何ケタの数になるかを求めるプログラム (while)  適当な正の整数 N を入力し、 N を十進表示したと きの、各桁の数の和を求めるプログラム (do ~ while )  適当な正の整数 N を入力し、 N が素数かどうかを 表示するプログラム (for および break)  次のページに続く

31  タブ( ¥t )を使って、次のように九九の 表を画面に出力するプログラムを作成せ よ。ただし、ネストした for 文を使うこ と。 123456789 24681012141618 369121518212427 4812162024283236 51015202530354045 61218243036424854 71421283542495663 81624324048566472 91827364554637281


Download ppt "山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文."

Similar presentations


Ads by Google