スライド 1: pi-6. Javaプログラミングにおけるループ処理と配列・リスト操作
スライド 2
スライド 3: 全体まとめ
スライド 4: アウトライン
スライド 5: オブジェクトとメソッド
スライド 6: Java プログラムの書き方
スライド 7: リスト
スライド 8: マップ (Map)
スライド 9: Java Tutor の起動
スライド 10: Java Tutor でのプログラム実行手順
スライド 11: Java Tutor 使用上の注意点①
スライド 12: Java Tutor 使用上の注意点②
スライド 13: Java Tutor でのステップ実行
スライド 14: 6-1. 配列と繰り返し(ループ)
スライド 15: 配列
スライド 16: 演習
スライド 17
スライド 18
スライド 19: 繰り返し(ループ)
スライド 20: 繰り返しのプログラム例
スライド 21: 演習
スライド 22
スライド 23
スライド 24
スライド 25
スライド 26
スライド 27
スライド 28: 演習
スライド 29
スライド 30
スライド 31: 6-2. リストと繰り返し(ループ),拡張 For 文
スライド 32: Java の for 文の種類
スライド 33: 演習
スライド 34
スライド 35
スライド 36: リストの生成,要素の挿入,拡張 for文
スライド 37: 全体まとめ
スライド 38: 全体まとめ
スライド 39: 関連ページ
スライド 40: 資料中のソースコード 6-1
スライド 41: 資料中のソースコード 6-1
スライド 42: 資料中のソースコード 6-1
スライド 43: 資料中のソースコード 6-1
スライド 44: 資料中のソースコード 6-2
pi
-6. Java
プログラミングにおけ
るループ処理と配列・リスト操作
1
金子邦彦
(
Java
マスター講座:基礎から応用まで)
URL:
https://www
.kkaneko.jp/pro/pi/index.html
2
物体の落下距離:
9.8
×
(
時間
)
2
÷
2
時間は
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
⇒
同じ式の計算を
1
1
回繰り返し
Ja
v
a
プログラム
実行結果
全体まとめ
•
for
による
繰り返し(ループ)
同じ処理や操作を繰り返す
•
拡張
for
文
により,
リスト
などのコレクションに
ついて,
繰り返し処理
ができる
3
Ja
v
a
プログラム
実行結果
アウトライン
4
番号
項目
復習
6
-1
配列と繰り返し(ループ)
6
-2
リストと繰り返し(ループ),拡張
f
or
文
6
-3
マップと繰り返し(ループ),拡張
f
or
文
各自、資料を読み返したり、課題に取り組んだりも行う
この授業では、
Ja
v
a
を用いて基礎を学び、マスターする
オブジェクトとメソッド
•
メソッド
:
オブジェクト
に属する操作や処理.
•
メソッド
呼び出しでは,
引数
を指定することがある.
引数
(ひきすう)は,
メソッド
に渡す値のこと
hero.attack("fence", 36, 26
)
5
her
o.mo
v
eDown
()
her
o
オブジェクト
mov
eDown
()
メソッド
間を「
.
」で
区切って
いる
Java
プログラムの書き方
•
代入
:
オブジェクト名
+
「
=
」
+
式または値またはメソッド呼び出し
•
メソッドアクセス
:
オブジェク
ト名
+
「
.
」
+
メソッド名
+「
()
」
(引数を付けることも)
6
x = 100
a = x +
200
enerm
y1 =
her
o.
findNeares
tEnemy
()
her
o.a
t
t
ack(enem
y1)
プログラムの例
その他,属性アクセス,関数呼び出し,制御,「
*
」
,
「
+
」などの演算子,コマンド,定義など
リスト
•
リスト
は,
同じ型の要素の並び
•
リスト
の要素には
順序がある
.
0から始まる
番号
(
添字
)が付いている
•
要素の
削除
,
挿入
により
サイズが増減
する
7
15
8
6
32
23
2
0
1
3
4
•
マップ
は,
キー
と
値(バリュー
)
の
ペア
の集まり
•
同じ値の
キー
は
2
回以上登
場しない
マップ
(Map)
8
キー
値(バリュー)
1
Red
2
Y
ellow
3
Blue
Java
T
utor
の起動
①
ウェブブラウザ
を起動する
②
Java T
utor
を使いたいので,次の
URL
を開く
https://p
ythontutor
.com/jav
a.
html
③
「
Java
」をクリック
⇒
編集画面
が開く
9
Java
T
utor
での
プログラム実行手
順
10
(1)
「
V
isualize Ex
ecution
」をク
リックして
実行画面
に切り替える
(2)
「
Last
」をクリック.
(3)
実行結果を確認
する.
(4)
「
Edit this code
」をク
リックして
編集画面
に戻る
Java
T
utor
使用上の注意点①
•
実行画面で,次のような
赤の表示
が出ること
がある
→
無視
してよい
過去の文法ミスに関する確認表示
邪魔なときは「
Close
」
11
Java
T
utor
使用上の注意点②
「
please wait ..
. executing
」のとき,
10
秒ほど待つ
.
→
混雑しているとき
は,
「
Server Bu
sy
・・・」
というメッセージが出る
ことがある.
混雑している.
少し(
数秒から数十秒)待
つ
と自
動で表示が変わる(変わらな
い場合には,操作を
もう一度行ってみる)
12
Java
T
utor
でのステップ実行
ステップ実行
により,
プログラム実行の流れ
を確認できる
13
6-
1.
配列と繰り返し(ループ)
14
配列
データの並び
で,
0から始まる番号(添
字)
が付いている
15
演習
資料:
17
~
18
【トピックス】
•
配列
16
①
Java
T
utor
のエディタで次のプログラムを入れ
る
17
月の日数についてのデータ
を作る。
サイズ
13
の配列
.
※
うるう年のことは考えないことにする
9月について表示
させてみて確認も行う.
②
実行し,結果を確認する
18
「
Visual Ex
ecution
」をクリック.そして「
Last
」をクリック.結果を確認.
「
E
dit this c
ode
」をクリックすると,エディタの画面に戻る
結果の
「
30
」が表示
されるので確認
繰り返し(ループ)
繰り返し(ループ)
では,
同じ処理や操作を繰
り返す
19
配列の中身の表示(要素は4個ある)
⇒
表示を
4
回繰り返し
Ja
v
a
プログラム
実行結果
繰り返しのプログラム例
20
「
f
or(i = 0;
i <= 3; i++)
」のあとに「
{
」
配列の組み立て
繰り返し
public class Y
ourClassNameHere
{
public static void main(String[] args
) {
double
x[] = {10, 20, 30, 40};
int i;
for(i = 0; i
<= 3; i++) {
Sy
stem.out.println(x[i
]);
}
}
}
字下げを行うことで,
プログラムを読みやすくしている
演習
資料:
22
~
27
【
トピックス
】
•
配列
•
繰り返し(ループ)
•
for
21
①
Java
T
utor
のエディタで次のプログラムを入れ
る
22
配列の中身の表示(要素は4個ある)
⇒
表示を
4
回繰り返し
②
実行し,結果を確認する
23
「
Visual Ex
ecution
」をクリック.そして「
Last
」をクリック.結果を確認.
「
E
dit this c
ode
」をクリックすると,エディタの画面に戻る
結果
を確認
③
Java
T
utor
のエディタで次のプログラムを入れ
る
24
物体の落下.
0
~
10
秒まで.
1
秒ごと
④
実行し,結果を確認する
25
「
Visual Ex
ecution
」をクリック.そして「
Last
」をクリック.結果を確認.
「
E
dit this c
ode
」をクリックすると,エディタの画面に戻る
ここをドラッグすると,
表示枠が広がる
⑤
Java
T
utor
のエディタで次のプログラムを入れ
る
26
配列
x
のすべての要素の
1.1
倍を
y
に格納
⑥
実行し,結果を確認する
27
「
Visual Ex
ecution
」をクリック.そして「
Last
」をクリック.結果を確認.
「
E
dit this c
ode
」をクリックすると,エディタの画面に戻る
このプログラムは引き続き使用する.
消さずに残し
ておくこと.
演習
資料:
29
~
30
【
トピックス
】
•
配列
•
繰り返し(ループ)
•
for
•
ステップ実行
28
①「
Step 1 of
21
」と表示されているので,
全部で,ステップ数は
21
あることが分かる
(ステップ数と,プログラムの行数は
違うもの
)
29
②
ステップ実行
したいので,「
Next
」をクリッ
ク
しながら,
矢印の動き
を確認
※
「
Next
」ボタンを何度か押し,それ以上進めな
くなったら終了
30
見どころ
6行目
,
7行目
が
繰り返される
実行が進むと,
y
の中身が更新される
6-
2.
リストと繰り返し
(ループ
),
拡張
For
文
31
Java
の
for
文の種類
•
for
文
:
変数
の
値を変化
させるもの
•
拡張
for
文
:
コレクション
(リストやマップなど)
の
要素をたどるため
のもの.
32
i
の値:
0
→
1
→
2
→
3
→
4
s
の値:
“15”
→
“8”
→ “6”
→
“32”
→
“23”
m
は、文字列を要素とする
コレクションオブジェクト
演習
資料:
34
~
35
【
トピックス
】
•
リスト
•
Array
List
•
拡張
for
文
33
①
Java
T
utor
のエディタで次のプログラムを入れる
34
拡張
f
or
文を使ってみる
②
実行し,結果を確認する
35
「
Visual Ex
ecution
」をクリック.そして「
Last
」をクリック.結果を確認.
「
E
dit this c
ode
」をクリックすると,エディタの画面に戻る
リストの生成,要素の挿入,拡
張
fo
r
文
•
リスト
の生成
•
要素の挿入
•
拡張
for
文
36
m:
オブジェクト名
String
は,
要素の
クラス
名
m:
オブジェクト名,
add:
メソッド
,
"15":
挿入したい要素
f
or(String s: m)
{
S
ys
tem.out.prin
tln(s);
}
m.add("15");
Arr
a
yLis
t<String>
m = new
Arr
a
yLis
t<String>();
全体まとめ
•
基本データ型
:
整数
,
浮動小数
,
文字
,
boolean
(
true/fa
lse
を扱う
)
•
配列
は,
データの並び
で,
0から始まる番号(添
字)
が付いている
•
条件分岐
•
繰り返し(ループ)
37
全体まとめ
•
for
による
繰り返し(ループ)
同じ処理や操作を繰り返す
•
拡張
for
文
により,
リスト
などのコレクションに
ついて,
繰り返し処理
ができる
38
Ja
v
a
プログラム
実行結果
関連ページ
•
Java
プログラミング入門
GDB online
を使用
https://www
.kkaneko.jp/pro/
ji
/index
.html
•
Java
の基本
Java
T
utor
,
GDB online
を使用
https://www
.kkaneko.jp/pro/pi/index.htm
l
•
Java
プログラム例
https://www
.kkaneko.jp/pro/java/ind
ex.html
39
資料中のソースコード
6-1
public class
Y
ourClass
NameHer
e
{
public static
void main(String[]
args) {
int
day
s[] = {0, 31, 28,
31, 30, 31,
30, 31,
31, 30, 31, 30,
31};
Sy
stem.out.println
(day
s[9]);
}
}
40
資料中のソースコード
6-1
public class
Y
ourClass
NameHer
e
{
public static
void main(String[]
args) {
double
x[] = {10, 20,
30, 40};
int
i;
for(i
= 0;
i <=
3;
i++)
{
Sy
st
em.out.println(x[i]);
}
}
}
41
資料中のソースコード
6-1
public class
Y
ourClass
NameHer
e
{
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
++)
{
Sy
st
em.out.println((9.8
/
2)
* x[i] *
x[i
]);
}
}
}
42
資料中のソースコード
6-1
public class
Y
ourClass
NameHer
e
{
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
資料中のソースコード
6-2
import
jav
a.util.Array
Li
st;
public class
Y
ourClassNameHere
{
public static
void main(String[]
args) {
Ar
ray
List<String>
m
=
new
Array
List<String>()
;
m.add
("15");
m.add
("8");
m.add
("6");
m.add("32");
m.add
("23");
for(String
s: m) {
Sy
st
em.out.println(s);
}
}
}
44