Download presentation
Presentation is loading. Please wait.
Published byたつぞう こびき Modified 約 8 年前
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
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.