Download presentation
Presentation is loading. Please wait.
1
ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
lesson01_huang.ppt から lesson03_huang.pptまですべての例題と演習を復習しなさい。 lesson02_huang.pptにある例題1-1 (p56), 1-2 (p60), 1-3(p63), 1-4(p66),1-5(p72), 1-6(p75)のプログラムを紙に手で書きなさい。 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6. lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回
2
Java I (プログラミング入門) 第3回 条件分岐
3
復習 算術演算のデータ データには型がある 整数型(int) 実数型(double) 文字列(String) 小数点つきの数
復習 算術演算のデータ データには型がある 整数型(int) 0, 1, 3, 563, -32, 実数型(double) 1.0, 3.14, -73.5, 18.(=18.0), .5 (=0.5) 小数点つきの数 正確には浮動小数点数(floating point number)と呼ばれる 文字列(String) Java 1 第3回
4
復習 算術演算の結果 整数と整数の演算結果は整数である。 実数と実数の演算結果は実数である。
復習 算術演算の結果 整数と整数の演算結果は整数である。 の結果は整数の46 実数と実数の演算結果は実数である。 の結果は実数の 5.0 整数と実数、あるいは実数と整数の演算結果は実数である。 7.0 / 3 の結果は実数の Java 1 第3回
5
復習 変数と型 変数は何かを入れておく箱のようなもの 宣言: 変数を用意すること 宣言されていない変数は使えない
復習 変数と型 変数は何かを入れておく箱のようなもの 変数は名前が必要 どんな種類(整数や実数など)のデータを入れる箱であるかを予め決めなければならない。 これを型という 宣言: 変数を用意すること 変数の型と名前を指定しなければならない 宣言されていない変数は使えない 代入: 変数にデータを入れること 参照: 変数に入っているデータを利用すること Java 1 第3回
6
宣言:変数を用意する int型の変数 x を宣言する int x; double型の変数 a を宣言する double a;
のようにすると、整数(integer)を入れるための変数 x が用意される。 double型の変数 a を宣言する double a; のようにすると、実数を入れるための変数 a が用意される。 行末のセミコロン (;) を忘れないように。 Java 1 第3回
7
変数の宣言と初期化を同時にやってもよい int x; x=100; int x=100; 同等 Java 1 第3回
8
復習 変数の宣言と参照 int x; int y; x = 100; y = 200; int z; z = x + y;
復習 変数の宣言と参照 int x; int y; x = 100; y = 200; int z; z = x + y; 参照: データが取り出される データの行き先 Java 1 第3回
9
今回のテーマ ユーザの入力がある対話的プログラム 条件分岐(条件式によるプログラムの流れの分岐)
ユーザは入力ダイアログを介して、プログラムと対話する。 条件分岐(条件式によるプログラムの流れの分岐) if文, if-else文 比較の演算, trueとfalse Java 1 第3回
10
入力(input) 入力とは? ユーザからの入力の取得 コンピュータに情報(データ)を与えてやること。
裏返せば、コンピュータが外部から情報を取得すること。 ユーザからの入力の取得 今回は入力ダイアログによるデータ取得 ユーザはここに データを入力する。
11
典型的なプログラムの形 「入力→処理→出力」という形 1. 外部から刺激(入力=input)を受けとり、 2. 適切に何らかの処理を行い、
3. 反応(出力=output)を返す。 Java 1 第3回
12
「入力→処理→出力」の流れの例 答えを表示する 入力 出力 処理f f(x) = |x| f -2 2 xの値が、 … -2 ならば答えは2
(例)ある数値の絶対値を求めるプログラム 知りたい数値をユーザに入力してもらう。 入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f f(x) = |x| f -2 2 Java 1 第3回
13
入力と出力の例 入力の例: 出力の例: 入力出力を合わせて入出力とも言う。(I/O)
キーボードの打鍵、マウスの動作、ファイルの読み込みなど。 出力の例: 画面上へのメッセージ表示、ファイルの書き出しなど 入力出力を合わせて入出力とも言う。(I/O)
14
入力ダイアログによるデータ取得 入力ダイアログ 取得したデータはその後の処理で用いる。 ユーザはここに データを入力する。
変数に代入し、後で参照させる。 値の型によって、取得方法を少し変える必要がある。 int, double, Stringの各型 100, 100.0, “100” ユーザはここに データを入力する。 “100”
15
整数データをユーザに入力させる (int型の値を取得する)
String ans = JOptionPane.showInputDialog(“整数を入力して下さい”); int input = Integer.parseInt(ans); この命令列で実行される内容 入力ダイアログが表示され、ユーザからの入力を待つ(「了解」ボタンが押されるまで) 入力されたデータをint型変数inputに代入 完了 Java 1 第3回
16
実際は入力の内容は一旦文字列値としてans1に保存される。それを整数値に変換している。
入力ダイアログを用いてユーザからの入力を取得しint型変数aに代入する。 package j1.lesson03; import javax.swing.*; public class EchoTwoInt { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("input(a):"); int a = Integer.parseInt(ans1); String ans2 = JOptionPane.showInputDialog("input(b)"); int b = Integer.parseInt(ans2); System.out.println("aの値は" + a); System.out.println("bの値は" + b); } } 実際は入力の内容は一旦文字列値としてans1に保存される。それを整数値に変換している。 Java 1 第3回
17
実際は入力の内容は一旦文字列値としてans2に保存される。それを整数値に変換している。
入力ダイアログを用いてユーザからの入力を取得しint型変数bに代入する。 package j1.lesson03; import javax.swing.*; public class EchoTwoInt { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("input(a):"); int a = Integer.parseInt(ans1); String ans2 = JOptionPane.showInputDialog("input(b)"); int b = Integer.parseInt(ans2); System.out.println("aの値は" + a); System.out.println("bの値は" + b); } } 実際は入力の内容は一旦文字列値としてans2に保存される。それを整数値に変換している。 Java 1 第3回 17
18
int型変数a, b に格納されている値をコンソールに出力
package j1.lesson03; import javax.swing.*; public class EchoTwoInt { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("input(a):"); int a = Integer.parseInt(ans1); String ans2 = JOptionPane.showInputDialog("input(b)"); int b = Integer.parseInt(ans2); System.out.println("aの値は" + a); System.out.println("bの値は" + b); } } Java 1 第3回
19
実行画面 Java 1 第3回
20
実数データをユーザに入力させる (double型の値を取得する)
String ans = JOptionPane.showInputDialog(“実数を入力して下さい”); double input = Double.parseDouble(ans); この命令列で実行される内容 入力ダイアログからのユーザの入力を待つ(「了解」ボタンが押されるまで) 入力されたデータをdouble型変数inputに代入 完了 Java 1 第3回
21
実数データを取得して表示 package j1.lesson03; import javax.swing.*;
public class EchoDouble { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("実数を入力してください"); double input = Double.parseDouble(ans1); System.out.println("入力された実数は" + input); } } Java 1 第3回
22
入力ダイアログを用いてユーザからの入力を取得しdouble型変数inputに代入する。
package j1.lesson03; import javax.swing.*; public class EchoDouble { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("実数を入力してください"); double input = Double.parseDouble(ans1); System.out.println("入力された実数は" + input); } } 実際は入力の内容は一旦文字列値としてans1に保存される。それを実数値に変換している。 Java 1 第3回
23
double型変数inputに格納されている値をコンソールに出力する
package j1.lesson03; import javax.swing.*; public class EchoDouble { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("実数を入力してください"); double input = Double.parseDouble(ans1); System.out.println("入力された実数は" + input); } } Java 1 第3回
24
実行画面 Java 1 第3回
25
文字列データを入力させる (String型の値を取得する)
String ans = JOptionPane.showInputDialog(“文字列を入力してください”); この命令で実行される内容 入力ダイアログからのユーザの入力を待つ(「了解」ボタンが押されるまで) (入力されたデータは、実は文字列型の値として取得される。) 2.完了 Java 1 第3回
26
ここまでのまとめ:データを入力させる ① String ans = JOptionPane.showInputDialog(“入力”); ②
整数値を得るとき int input = Integer.parseInt(ans); 実数値を得るとき double input = Double.parseDouble(ans); 文字列データを得るとき 実は①で変数ansに入力した内容がすでに文字列として格納されている。 Java 1 第3回
27
条件によって処理を変える 「もし ~ ならば ~ 」 という処理が不可欠 入力 処理f 出力 答えを表示する xの値が、 …
(例)ある数値の絶対値を求めるプログラム 知りたい数値をユーザに入力してもらう。 入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f 「もし ~ ならば ~ 」 という処理が不可欠 ふかけつ Java 1 第3回 27
28
次のように書く if ( a > 0 ){ b = a * 3; }
Java 1 第3回
29
if 文 (if statement) =「もし ~ ならば ~ 」
条件式 true if ( a > 0 ){ b = a * 3; } a > 0 a > 0 b = a * 3; b = a * 3; false then節 aの値が0より大きいときだけ代入文b = a * 3;が実行される。 (と)の間には式を書く。この式は条件式と呼ばれる。 条件式はboolean型の値(trueかfalseのどちらか)をとる。 aの値が0より大きいとき条件式a > 0の値はtrueとなり、そうでないときfalseとなる。 条件式の値がtrueとなるときだけ、then節に書かれた命令が実行される。 Java 1 第3回
30
条件の部分に書けるもの 20 + 30とかは書けない。 比較の演算などを書く。
10 < 100, 10 >100 はどちらもJavaの式 JOptionPane.showMessageDialog( null, 10 < 100); JOptionPane.showMessageDialog( null, 10 > 100); 式10 < 100は、「10 は100より小さい 」が正しいかどうかを判定する 正しい -- true(真) 式10 > 100は、「10は100より大きい 」が正しいかどうかを 判定する 正しくない – false(偽) 条件の部分に書けるのは、このように何かを判定する命令 これを述語(predicate)という。値がtrue,falseのどちらかになる式 Java 1 第3回 30
31
いろいろな比較の演算 比較演算の式の結果はtrueかfalseのどちらかの(boolean型)の値である。 比較演算 意味 a == b
aとbが等しければtrue、そうでなければfalse a != b aとbが等しくなければtrue、そうでなければfalse a >= b aがbより大きいか等しければtrue、そうでなければfalse a <= b aがbより小さいか等しければtrue、そうでなければfalse a > b aがbより大きいければtrue、そうでなければfalse a < b aがbより小さければtrue、そうでなければfalse Java 1 第3回
32
比較の演算の練習 次の表を紙に書き、各欄に演算の結果を埋めよ。 a: 55 b: 60 a: 60 b: 60 a: 65 b: 60 ==
55 == 60 false 60 == 60 true 65 == 60 != 55 != 60 60 != 60 65 != 60 >= 55 >= 60 60 >= 60 65 >= 60 <= 55 <= 60 60 <= 60 65 <= 60 > 55 > 60 60 > 60 65 > 60 < 55 < 60 60 < 60 65 < 60 Java 1 第3回
33
下記の二つの文の意味の違いに注意 if ( a > 0 ){ b = a * 3; } if ( a >= 0 ){
Java 1 第3回 33
34
if-else 文 (if-else statement) =「もし ~ ならば ~ それ以外は~ 」
条件式 false if ( a > 0 ){ b = a * 3; } else { b = 0; } a > 0 a > 0 b = a * 3; true b = a * 3; b = 0; b = 0; then節 else節 aの値が0より大きい場合(a > 0 の結果がtrue) then節の代入文「b = a * 3;」が実行され、 そうでない場合(a > 0の結果がfalse)は else節の代入文「b = 0;」が実行される Java 1 第3回
35
ifやif-elseではプログラムの流れは分岐する。 後で合流していることも忘れずに。
false a > 0 true b = a * 3; b = 0; 合流 ぶんき Java 1 第3回
36
ユーザの入力するデータによって、 違う処理を行う例(例題5)
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
37
入力ダイアログを用いてユーザからの入力を取得しint型変数markMathに代入する。
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
38
markMathの値が60未満なら “残念、不合格” そうでなければ“合格おめでとう” をダイアログで出力
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
39
if~else if ~ else …(1) 0より小さい値は警告する
if (markMath < 0) { JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
40
if~else if ~ else … if (markMath < 0) { //負の値
//負の値 } else if (markMath < 60) { //不合格 } else { //合格 } markMath < 0 false markMath < 60 false true true 負の値 不合格 合格 Java 1 第3回 40
41
if~else if ~ else …(2) 100より大きい値は警告する
if (markMath < 0) { JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath > 100) { JOptionPane.showMessageDialog(null, “入力誤り:大きい値です。"); } else if (markMath < 60) { JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
42
if~else if ~ else .. if (条件1) { //条件1がtrueのときの処理 } else if (条件2) {
} else if (条件n) { //条件nがtrueのときの処理 } else { //上記条件がどれもtrueでない時の処理。 } 42 Java 1 第3回
43
注意 then節やelse節が1命令(1文) の場合は、下記のようにも書ける。 本講義では左の書き方を推奨する。
if ( a > 0 ){ b = a * 3; } if ( a > 0 ) b = a * 3; 2命令以上の場合は、 {と}で囲む。 if ( a > 0 ){ b = a * 3; c = b * a; } else { b = 0; } if ( a > 0 ) ){ b = a * 3; c = b * a; } else b = 0; Java 1 第3回
44
今回のテーマ(まとめ) プログラムの実行を追う。 ユーザの入力がある対話的プログラム 条件分岐(条件式によるプログラムの流れの分岐)
コンピュータの動作をシミュレーションする。 ユーザの入力がある対話的プログラム ユーザは入力ダイアログを介して、プログラムと対話する。 条件分岐(条件式によるプログラムの流れの分岐) if文, if-else文 比較の演算, trueとfalse Java 1 第3回 44
45
付録:入力→処理→出力 ある数値の絶対値を知りたいときは、 入力 X ←知りたい絶対値は? 知りたい数値をユーザに入力してもらう。
入力値に応じて、答えを求める処理をする。 結果を出力する。 X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 処理f f(x) = |x| 出力 答えを表示する Java 1 第3回
46
絶対値の計算(1) -2から2の入力に対してしか正解は出ないが、 このやり方で一部の入力に対する絶対値は表示できる。
//入力 String ans = JOptionPane.inputMessageDialog (“知りたい絶対値は?”); int input = Integer.parseInt(ans); //処理 int result = 0; //初期値設定 if (input == -2) { result = 2; } else if (input == -1) { result = 1; } else if (input == 0) { result = 0 ;} else if (input == 1) {result = 1;} else if (input == 2) {result = 2;} //出力 JOptionPane.showMessageDialog(null, “答えは”+result); X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f -2から2の入力に対してしか正解は出ないが、 このやり方で一部の入力に対する絶対値は表示できる。 (int型の値は、2の32乗通りなので、それを書き下せば 原理的には、このやり方でいける。) Java 1 第3回
47
絶対値の計算(2) |x| = -x (x < 0のとき) = x (x >= 0のとき) //入力
String ans = inputMessageDialog(“知りたい絶対値は?”); int input = Integer.parseInt(ans); //処理 int result = 0; If (input < 0) { result = -input; } else { result = input; } //出力 JOptionPane.showMessageDialog(null, “答えは”+result); X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f |x| = -x (x < 0のとき) = x (x >= 0のとき) Java 1 第3回
48
絶対値の計算(3) Javaではすでに絶対値の計算をする方法が 標準のやり方として用意されているので、 これを使うのが普通。
X ←知りたい絶対値は? xの値が、 … -2 ならば答えは2 -1ならば答えは1 0 ならば答えは0 1 ならば答えは1 2 ならば答えは2 答えを表示する 入力 出力 処理f // 入力 String ans = inputMessageDialog(“知りたい絶対値は?”); int input = Integer.parseInt(ans); // 処理 int result = Math.abs(input); //出力 JOptionPane.showMessageDialog(null, “答えは”+result); Javaではすでに絶対値の計算をする方法が 標準のやり方として用意されているので、 これを使うのが普通。 Java 1 第3回
49
例題集
50
□例題1 ダイアログによる入力 問題:入力ダイアログを用いてユーザから入力を得て、 その入力内容を表示するプログラムを作成せよ。
□例題1 ダイアログによる入力 問題:入力ダイアログを用いてユーザから入力を得て、 その入力内容を表示するプログラムを作成せよ。 入力ダイアログ String ans = JOptionPane.showInputDialog(“何か入力してください"); 出力 System.out.println(“あなたが入力した内容:” + ans); (プログラム名: Exercise01.java) Java 1 第3回
51
パッケージ 今回は j1.lesson03 というパッケージを作成する。 パッケージの作成は毎回の演習の最初に行うことを原則とする。
Java 1 第3回
52
パッケージの作成 「java2009」プロジェクトの左側にある「+」をクリック ツリーが展開されるので、「src」の上で右クリック
マウスカーソルを「新規」に合わせる 「パッケージ」をクリック Java 1 第3回
53
パッケージ名の入力 「新規 Java パッケージ」というウィンドウが開くので、 「名前」欄に半角文字 で
「j1.lesson03」と入力する 。 正しく入力できたことを確認したら、右下の「終了」ボタンをクリックして確定する。 j1.lesson03 Java 1 第3回
54
クラスの作成 クラス = プログラム と思ってよい
クラスの作成 クラス = プログラム と思ってよい 先ほど作成したパッケージ 「j1.lesson03」の上で右クリック マウスカーソルを「新規」に合わせる 「クラス」をクリック Java 1 第3回
55
手順2:プログラムを編集する。 ダイアログに入力された内容を変数ansに代入し、 ansの値をコンソールに出力する。
package j1.lesson03; import javax.swing.*; public class Exercise01 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("何か入力してください"); System.out.println("あなたが入力した内容:" + ans); } ダイアログに入力された内容を変数ansに代入し、 ansの値をコンソールに出力する。 Java 1 第3回
56
実行結果 Java 1 第3回
57
□例題2 ダイアログによる入力(2) 問題:入力ダイアログを用い、数学と英語の試験の 合計点、平均点を求め,ダイアログに表示するプ ログラムを作成せよ。 String ans1 = JOptionPane.showInputDialog(“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans1); //英語についても上3行と同じように int sum //英語の点数+数学の点数 double average // (sum / 2.0) //sumとaverageをダイアログで表示 (プログラム名:Exercise02.java) Java 1 第3回
58
手順1:パッケージj1.lesson03内に Exercise02クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.JOptionPane; public class Exercise02 { public static void main(String[] args) { String ans1 = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); String ans2 = JOptionPane.showInputDialog("英語の試験は何点でしたか?"); int markMath = Integer.parseInt(ans1); int markEnglish = Integer.parseInt(ans2); int sum = markMath + markEnglish; double average = sum / 2.0; JOptionPane.showMessageDialog(null, "合計点:" + sum + "\n平均点:" + average); } 入力 処理 入力の部分はP27などの説明とは、 命令を置く順番が少し違うが問題 はない。 出力 Java 1 第3回
59
手順3:実行する
60
□例題3 関係演算子 問題:入力ダイアログを用いて数学の試験の点数が 60点より高いか調べるプログラムを作成せよ
□例題3 関係演算子 問題:入力ダイアログを用いて数学の試験の点数が 60点より高いか調べるプログラムを作成せよ String ans = JOptionPane.showInputDialog(“数学 の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); System.out.println(markMath > 60); (プログラム名:Exercise03.java) Java 1 第3回
61
手順1:パッケージj1.lesson03内に Exercise03クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.JOptionPane; public class Exercise03 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog(“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); System.out.println(markMath > 60); } } Java 1 第3回
62
手順3:実行する Java 1 第3回
63
□例題4 条件分岐 問題:入力ダイアログを用いて年号あてクイズを作成せよ (プログラム名:Exercise04.java)
□例題4 条件分岐 問題:入力ダイアログを用いて年号あてクイズを作成せよ String ans = JOptionPane.showInputDialog(“鎌倉幕府が開かれたのは何年?"); int year = Integer.parseInt(ans); if ( _______ ) {//yearと1192が等しければ JOptionPane.showMessageDialog(null, "正解"); } else { JOptionPane.showMessageDialog(null, "不正解"); } (プログラム名:Exercise04.java) Java 1 第3回
64
手順1:パッケージj1.lesson03内に Exercise04クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise04 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog(“鎌倉幕府が開かれたの は何年?"); int year = Integer.parseInt(ans); if (year == 1192) { JOptionPane.showMessageDialog(null, "正解"); } else { JOptionPane.showMessageDialog(null, "不正解"); } } 入力 処理 出力 Java 1 第3回
65
手順3:実行する。 Java 1 第3回
66
入力→処理→出力をもう少しはっきりさせたプログラムの例
package j1.lesson03; import javax.swing.*; public class Exercise04 { public static void main(String[] args) { String result; //結果を保存するための変数を用意する。 String ans = JOptionPane.showInputDialog (“鎌倉幕府が開かれたのは何年?"); int year = Integer.parseInt(ans); if (year == 1192) { result = "正解"; } else { result = "不正解"; } JOptionPane.showMessageDialog(null,result); } 入力 処理 出力 Java 1 第3回 66
67
□例題5 条件分岐(2) 問題:入力ダイアログを用い試験の合格判定プログラムを作成せよ。 (プログラム名:Exercise05.java)
□例題5 条件分岐(2) 問題:入力ダイアログを用い試験の合格判定プログラムを作成せよ。 String ans = JOptionPane.showInputDialog (“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if( _______ ) {//markMathが60未満ならば //不合格のメッセージダイアログ } else { //合格のメッセージダイアログ } (プログラム名:Exercise05.java) Java 1 第3回
68
手順1:パッケージj1.lesson02内に Exercise05クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise05 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
69
手順3:実行する。 サンプルプログラムでは、不合格の処理(例外的な事柄) が先(then節)に書かれているが、実際には、左のように
if( _______ ) {//markMathが60以上ならば //合格のメッセージダイアログ } else { //不合格のメッセージダイアログ } サンプルプログラムでは、不合格の処理(例外的な事柄) が先(then節)に書かれているが、実際には、左のように 合格が上にくるように書く方が本当は良い。 (各自書き直してみよ。) Java 1 第3回
70
□例題6 条件分岐(3) 問題:例題5の合格判定プログラムを基に、入力が負の値だった場合にメッセージをダイアログで表示するプログラムを作成せよ。 String ans = JOptionPane.showInputDialog(“数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if ( _______ ){ //markMathが0未満ならば //入力値誤りのメッセージダイアログ } else if( _______ ){ //markMathが60未満ならば //不合格のメッセージダイアログ } else { //合格のメッセージダイアログ } (プログラム名:Exercise06.java) Java 1 第3回
71
手順1:パッケージj1.lesson02内に Exercise06クラスを作る。 手順2:プログラムを編集する。
package j1.lesson03; import javax.swing.*; public class Exercise06 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 0){ JOptionPane.showMessageDialog(null, "入力誤り:負の値です。"); } else if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); } Java 1 第3回
72
手順3:実行する。 Java 1 第3回
73
□例題7 (optional) 問題:例題5の合格判定プログラムを基に、さらに点数が80点以上だった場合は褒めてあげるプログラムを作成せよ。
String ans = JOptionPane.showInputDialog(“数学の試験は 何点でしたか?"); int markMath = Integer.parseInt(ans); if( _____ ){ //markMathが60未満ならば //不合格のメッセージダイアログ } else { //合格のメッセージダイアログ if( _____ ){ //markMathが80点以上ならば //褒めるメッセージダイアログ } (プログラム名:Exercise07.java) Java 1 第3回
74
手順1:パッケージj1.lesson03内にExercise07クラスを作る。
手順2:プログラムを編集する。 package j1.lesson03; import javax.swing.*; public class Exercise07 { public static void main(String[] args) { String ans = JOptionPane.showInputDialog("数学の試験は何点でしたか?"); int markMath = Integer.parseInt(ans); if (markMath < 60){ JOptionPane.showMessageDialog(null, "残念、不合格"); } else { JOptionPane.showMessageDialog(null, "合格、おめでとう"); if (markMath >= 80){ JOptionPane.showMessageDialog(null, "君、優秀じゃないか"); } Java 1 第3回
75
手順3:実行する。 Java 1 第3回
76
課題 各自のペースで 「第03週目の課題」をやってみよう
をブラウザで開く 第03回 – Conditional Branch (if-else) - をクリック 第03週目課題をクリック Java 1 第3回
77
ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
lesson01_huang.ppt から lesson03_huang.pptまですべての例題と演習を復習しなさい。 lesson02_huang.pptにある例題1-1 (p56), 1-2 (p60), 1-3(p63), 1-4(p66),1-5(p72), 1-6(p75)のプログラムを紙に手で書きなさい。 第二回の演習のプログラム(4つ)を紙に手で書きなさい。 lesson03_huang.pptにある例題1(p54), 2(p57), 3(p60), 4(p63), 5(p67), 6(p71), 7(p73)のプログラムを紙に手で書きなさい。 第三回の演習のプログラム(4つ)を紙に手で書きなさい。 6. lesson01_huang.ppt から lesson03_huang.pptまですべての課題を復習しなさい Java 1 第3回
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.