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

Slides:



Advertisements
Similar presentations
プログラミング演習( 2 組) 第 9 回
Advertisements

プログラミング第5回 1 while ループ 文字列の操作
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
プログラミング基礎I(再) 山元進.
ループで実行する文が一つならこれでもOK
アルゴリズムとデータ構造 2012年6月27日
4章 制御の流れ-3.
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
IO - 入出力 小西 亨.
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
C言語 配列 2016年 吉田研究室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
第6章 2重ループ&配列 2重ループと配列をやります.
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
JAVA入門② 変数と型 式と演算子 制御文.
第7回 条件による繰り返し.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
JAVA入門.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
暗号技術 ~JAVAプログラム③~ (7週目)
繰り返し計算 while文, for文.
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム①~ (5週目)
第7回 条件による繰り返し.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
アルゴリズムとデータ構造 2010年6月21日
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
ソフトウェア制作論 平成30年11月21日.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
プログラムの基本構造と 構造化チャート(PAD)
アルゴリズムとデータ構造1 2006年7月11日
アルゴリズムとデータ構造 2011年6月23日
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミングⅡ 第2回.
第2回独習Javaゼミ 第3章 セクション4~5 発表者 直江 宗紀.
暗号技術 ~JAVAプログラム②~ (6週目)
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
C#プログラミング実習 第2回.
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
アルゴリズムとデータ構造 2012年6月25日
JAVA入門⑥ クラスとインスタンス.
プログラミング基礎演習 第4回.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
ねらい 数値積分を例題に、擬似コードのアルゴリズムをプログラムにする。
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
知能情報工学演習I 第10回( C言語第4回) 課題の回答
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

山元進

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

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

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

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(" 繰り返しが終わりました。 "); }

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

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 文中で変数を使うと、繰り返し回数などが示せる

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: 変数のスコープ, 生存期間 ) }

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("*"); }

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+" です。 "); }

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

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

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

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

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

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

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

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

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

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

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

(2010 Oct. 18) から引用

E3%82%AB%E4%BA%BA%E5%BD%A2 (2010 Oct. 18) から引用

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); }

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"); }

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; と同じ意味 }

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+" 回目の処理です。 "); }

 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 も実行されない

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

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

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