pi-6. 繰り返し,ループ

157 Views

January 26, 22

スライド概要

トピックス:繰り返し(ループ),for,ステップ実行,拡張 for 文,リスト(Java Tutor による演習)

Java の基本(スライド資料とプログラム例)(全17回)
https://www.kkaneko.jp/pro/pi/index.html

金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

pi-6. 繰り返し(ルー プ) トピックス:繰り返し(ループ),for,ステップ 実行,拡張 for 文,リスト URL: https://www.kkaneko.jp/pro/pi/index.html (Java の基本,スライド資料とプログラム例) 金子邦彦 1

2.

物体の落下距離: 9.8 × (時間)2 ÷ 2 時間は 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ⇒ 同じ式の計算を 11 回繰り返し Java プログラム 実行結果 2

3.

全体まとめ • for による繰り返し(ループ) 同じ処理や操作を繰り返す Java プログラム 実行結果 • 拡張 for 文により,リストなどのコレクションに ついて,繰り返し処理ができる 3

4.

アウトライン 番号 項目 復習 6-1 配列と繰り返し(ループ) 6-2 リストと繰り返し(ループ),拡張 for 文 6-3 マップと繰り返し(ループ),拡張 for 文 各自、資料を読み返したり、課題に取り組んだりも行う この授業では、Java を用いて基礎を学び、マスターする 4

5.

オブジェクトとメソッド hero.moveDown() hero オブジェクト moveDown() メソッド 間を「.」で区切っている • メソッド: オブジェクトに属する操作や処理. • メソッド呼び出しでは,引数を指定することがある.引数 (ひきすう)は,メソッドに渡す値のこと hero.attack("fence", 36, 26) 5

6.

Java プログラムの書き方 プログラムの例 x = 100 a = x + 200 enermy1 = hero.findNearestEnemy() hero.attack(enemy1) • 代入:オブジェクト名 + 「=」 + 式または値またはメソッド呼び出し • メソッドアクセス:オブジェクト名 + 「.」 + メソッド名 +「()」 (引数を付けることも) その他,属性アクセス,関数呼び出し,制御,「*」, 「+」などの演算子,コマンド,定義など 6

7.

リスト • リストは,同じ型の要素の並び • リストの要素には順序がある.0から始まる 番号(添字)が付いている • 要素の削除,挿入によりサイズが増減する 0 2 1 15 8 3 6 4 32 23 7

8.

マップ (Map) キー 1 2 3 値(バリュー) Red Yellow Blue マップは,キーと値(バリュー)のペア の集まり • 同じ値のキーは2回以上登場しない • 8

9.

Java Tutor の起動 ① ウェブブラウザを起動する ② Java Tutor を使いたいので,次の URL を開く http://www.Javatutor.com/ ③ 「Java」をクリック ⇒ 編集画面が開く 9

10.

Java Tutor でのプログラム実行手順 (1)「Visualize Execution」をク リックして実行画面に切り替える (2)「Last」をクリック. (4)「Edit this code」をク (3) 実行結果を確認する. リックして編集画面に戻る 10

11.

Java Tutor 使用上の注意点① • 実行画面で,次のような赤の表示が出ることがある → 無視してよい 過去の文法ミスに関する確認表示 邪魔なときは「Close」 11

12.

Java Tutor 使用上の注意点② 「please wait ... executing」のとき,10秒ほど待つ. → 混雑しているときは, 「Server Busy・・・」 というメッセージが出ることがある. 混雑している.少し(数秒から数十秒)待つと自 動で表示が変わる(変わらない場合には,操作を もう一度行ってみる) 12

13.

Java Tutor でのステップ実行 ステップ実行により,プログラム実行の流れ を確認できる 13

14.

6-1. 配列と繰り返し(ループ) 14

15.

配列 データの並びで,0から始まる番号(添 字)が付いている 15

16.

演習 資料:17 ~ 18 【トピックス】 • 配列 16

17.

① Java Tutor のエディタで次のプログラムを入れ る 月の日数についてのデータを作る。サイズ 13 の配列. ※ うるう年のことは考えないことにする 9月について表示させてみて確認も行う. 17

18.

② 実行し,結果を確認する 結果の 「30」が表示 されるので確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 18

19.

繰り返し(ループ) 繰り返し(ループ)では,同じ処理や操作を繰 り返す 配列の中身の表示(要素は4個ある) ⇒ 表示を 4 回繰り返し Java プログラム 実行結果 19

20.

繰り返しのプログラム例 public class YourClassNameHere { public static void main(String[] args) { double x[] = {10, 20, 30, 40}; int i; for(i = 0; i <= 3; i++) { System.out.println(x[i]); } } } 配列の組み立て 繰り返し 「for(i = 0; i <= 3; i++)」のあとに「{」 字下げを行うことで, プログラムを読みやすくしている 20

21.

演習 資料:22 ~ 27 【トピックス】 • 配列 • 繰り返し(ループ) • for 21

22.

① Java Tutor のエディタで次のプログラムを入れ る 配列の中身の表示(要素は4個ある) ⇒ 表示を 4 回繰り返し 22

23.

② 実行し,結果を確認する 結果を確認 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 23

24.

③ Java Tutor のエディタで次のプログラムを入れ る 物体の落下.0~10秒まで.1秒ごと 24

25.

④ 実行し,結果を確認する ここをドラッグすると, 表示枠が広がる 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 25

26.

⑤ Java Tutor のエディタで次のプログラムを入れ る 配列 x のすべての要素の 1.1 倍を y に格納 26

27.

⑥ 実行し,結果を確認する このプログラムは引き続き使用する.消さずに残しておくこと. 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 27

28.

演習 資料:29 ~ 30 【トピックス】 • 配列 • 繰り返し(ループ) • for • ステップ実行 28

29.

①「Step 1 of 21」と表示されているので, 全部で,ステップ数は 21 あることが分かる (ステップ数と,プログラムの行数は違うもの) 29

30.

② ステップ実行したいので,「Next」をクリック しながら,矢印の動きを確認 ※「Next」ボタンを何度か押し,それ以上進めな くなったら終了 実行が進むと, y の中身が更新される 見どころ 6行目,7行目が 繰り返される 30

31.

6-2. リストと繰り返し(ループ), 拡張 For 文 31

32.

Java の for 文の種類 • for 文: 変数の値を変化させるもの i の値: 0 → 1 → 2 → 3 → 4 • 拡張 for 文: コレクション(リストやマップなど) の要素をたどるためのもの. m は、文字列を要素とする コレクションオブジェクト s の値: “15” → “8” → “6” → “32” → “23” 32

33.

演習 資料:34 ~ 35 【トピックス】 • リスト • ArrayList • 拡張 for 文 33

34.

① Java Tutor のエディタで次のプログラムを入れる 拡張 for 文を使ってみる 34

35.

② 実行し,結果を確認する 「Visual Execution」をクリック.そして「Last」をクリック.結果を確認. 「Edit this code」をクリックすると,エディタの画面に戻る 35

36.
[beta]
リストの生成,要素の挿入,拡張 for文
• リストの生成

ArrayList<String> m = new ArrayList<String>();
m: オブジェクト名

Stringは,
要素のクラス名

• 要素の挿入
m.add("15");
m: オブジェクト名,add: メソッド, "15": 挿入したい要素

• 拡張 for 文
for(String s: m) {
System.out.println(s);
}

36

37.

全体まとめ • 基本データ型 :整数,浮動小数,文字,boolean (true/falseを扱う) • 配列は,データの並びで,0から始まる番号(添 字)が付いている • 条件分岐 • 繰り返し(ループ) 37

38.

全体まとめ • for による繰り返し(ループ) 同じ処理や操作を繰り返す Java プログラム 実行結果 • 拡張 for 文により,リストなどのコレクションに ついて,繰り返し処理ができる 38

39.

関連ページ • Java プログラミング入門 GDB online を使用 https://www.kkaneko.jp/pro/ji/index.html • Java の基本 Java Tutor, GDB online を使用 https://www.kkaneko.jp/pro/pi/index.html • Java プログラム例 https://www.kkaneko.jp/pro/java/index.html 39

40.

資料中のソースコード 6-1 public class YourClassNameHere { public static void main(String[] args) { int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; System.out.println(days[9]); } } 40

41.
[beta]
資料中のソースコード 6-1
public class YourClassNameHere {
public static void main(String[] args) {
double x[] = {10, 20, 30, 40};
int i;
for(i = 0; i <= 3; i++) {
System.out.println(x[i]);
}
}
}

41

42.
[beta]
資料中のソースコード 6-1
public class YourClassNameHere {
public static void main(String[] args) {
double x[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int i;
for(i = 0; i <= 10; i++) {
System.out.println((9.8 / 2) * x[i] * x[i]);
}
}
}

42

43.
[beta]
資料中のソースコード 6-1
public class YourClassNameHere {
public static void main(String[] args) {
double x[] = {8, 6, 4, 2, 3};
double y[] = {0, 0, 0, 0, 0};
int i;
for(i = 0; i <= 4; i++) {
y[i] = x[i] * 1.1;
}
}
}

43

44.
[beta]
資料中のソースコード 6-2
import java.util.ArrayList;
public class YourClassNameHere {
public static void main(String[] args) {
ArrayList<String> m = new ArrayList<String>();
m.add("15");
m.add("8");
m.add("6");
m.add("32");
m.add("23");
for(String s: m) {
System.out.println(s);
}
}
}

44