プログラミング A 第 5 回 場合に応じた処理 繰り返し 2017 年 5 月 15 日 東邦大学金岡晃
前回の復習 (1) このプログラムを作成し実行してください 1
前回の復習 (2) このプログラムを作成し実行してください 2
前回の復習 (3) 3
前回の復習 演算子 代入演算子 インクリメント シフト演算子 型変換 4
場合に応じた処理 5
こういうプログラムを作りたい 5 教科のテスト 100 点以上各科目の点数の合計が 100 点未満 おめでとう! これで 100 点越えのプレゼントを獲得! というメッセージを出力 残念!100 点越えのプレゼントまであと ** 点! というメッセージを出力 5 教科の点数の合計が 100 点以上か 条件に応じたプログラム 6
条件 5 教科の点数の合計が 100 点以上か true or false で答えられる 条件 式のうち true あるいは false で答えられるもの 関係演算子や論理演算子をつかって記述される 条件は 式として評価され true または false の値 (boolean 型 ) を返す 関係演算子 記号 名前 > より大きい >= 以上 < 未満 <= 以下 == 等価!= 非等価 sum>=100 7
関係演算子と boolean このプログラムを作成し実行してください 8
条件に従ったプログラミング 5 教科のテスト 100 点以上各科目の点数の合計が 100 点未満 おめでとう! これで 100 点越えのプレゼントを獲得! というメッセージを出力 残念!100 点越えのプレゼントまであと ** 点! というメッセージを出力 条件は書くことができた では 条件に従って動作を変更させるには?? if 特殊な文がある if~else switch 9
条件に従ったプログラミング (1) :if 文 もし ~ だったら ** しよう if 文 if ( 条件 ) 文 ; 条件 が true だったら 文 を実行 if(sum>=100) System.out.println( おめでとう! これで 100 点越えのプレゼントを獲得! ); 複数の文を実行 if ( 条件 ){ 文 1; 文 2; } 10
条件に従ったプログラミング (2) :if~else if~else 文 もし ~ だったら ** しよう ~ じゃなかったら しよう if ( 条件 ) 文 1; else 文 2; 条件 が true だったら 文 1 を実行 false だったら 文 2 を実行 if(sum>=100) System.out.println( おめでとう! これで 100 点越えのプレゼントを獲得! ); else System.out.println( 残念!100 点越えのプレゼントまであと +(100-sum)+ 点! ); 11
if~else の例題 このプログラムを作成し実行してください 12
条件に従ったプログラミング (2) :if~else もし ~ だったら ** しよう もし ~ じゃなくて だったら しよう それでも違うんだったら しよう if(sum>=100) System.out.println( おめでとう! これで 100 点越えのプレゼントを獲得! ); else if (sum>=90) System.out.println( おしい!100 点越えのプレゼントまであと +(100-sum)+ 点! ); else System.out.println( がんばれ!100 点越えのプレゼントまであと +(100-sum)+ 点! ); 100 点未満で 90 点以上 13
条件に従ったプログラミング (2) :switch 文 こういったプログラムを作りたい もし入力されたのがAだったら Xという作業を もし入力されたのがBだったら Yという作業を もし入力されたのがCだったら Zという作業を もしどれでもなかったら Wという作業を If~elseの組み合わせでもできるが switch 文 switch( 式 ){ case 値 1: 文 1; break; case 値 2: 文 2; break; } default: 文 3; break; 14
switch 文 switch 文 switch( 式 ){ case 値 1: 文 1; break; case 値 2: 文 2; break; } default: 文 3; break; 式 の値が 値 1 だったとき 文 1 を実行 値 2 だったときは 文 2 を実行 どれでもないとき (default) は 文 3 を実行 break : 制御文 (if 文や switch 文 ) を途中で終了させる命令 注意 switch() の中の式は 条件式だけではなく通常の式が使える 15
switch の例題 このプログラムを作成し実行してください 16
論理演算子 条件が 2 つある場合どうしよう? たとえば 大学近辺の ランチの時間帯にやっている という飲食店を探すとき if ~ else を 2 回使えばできるが いっぺんにまとめてできないか? または かつ の話 複数の条件をまとめて評価するときや 条件の否定 (~ でないとき ) をするときに使う 論理演算子 記号 名前! 論理否定 ( 単項 ) && 論理積 論理和 17
論理演算子のイメージ && (AND) A B (OR) A B! (NOT) A 18
論理演算子の例題 このプログラムを作成し実行してください 19
何度も繰り返す 20
こういうプログラムを作りたい 120 人いる情報科学科全員のプログラミング A の合計点と平均点を求めたい できないことはない 合計を入れておく変数を作り 120 回 次の人の点数を入れてください と書く 120 回おんなじことをプログラムに書かないといけない?? 21
for 文 for 文 for ( 初期化の式 ; 繰り返すかどうか調べる式 ; 変化のための式 ) 文 ; 初期化 for 文の構造 変化のための式 繰り返すかどうか調べる式 false true 文 22
ループ内で変数を使う 初期化の式 : int i=1 繰り返すかどうか調べる式 : i <= 5 変化のための式 : i++ ループの変数を文に使うこともできる 23
ループ内で変数を使う 初期化 int i=1 変化のための式 i++ i<=5 繰り返すかどうか調べる式 true 文 繰り返しています の出力 false 24
for 文の例題 このプログラムを作成し実行してください 25
while 文 while 文 while( 条件 ){ 文 ; } 条件が true の間繰り返す while 文の構造 条件 true 文 文の中で条件に入るものを変化させないと無限ループになる恐れがある false 26
do~while 文 while 文 do{ 文 ; } while( 条件 ); 最初に文を実行し 条件が true の間繰り返す do~while 文の構造 文 条件 true false 27
break と continue 制御文 (if, switch, for, while) を途中ですっ飛ばして次に行く 次? ループを外れる break; ループに戻る continue; 28
continue の例文 このプログラムを作成し実行してください 29
今日の課題 1. 1~20 までの偶数を出力するプログラムを作成してください ただし for 文と if 文を利用すること 2. キーボードからテストの点数を入力させ その合計点と平均点を出力するコードを記述してください ただし 0 が入力されたら入力が終了するものとし 何人 ( 何科目 ) 分の入力でも可能なように工夫してください 3. < チャレンジ問題 > キーボードから入力された数字が素数であるかどうかを判定する 素数判定プログラムを作ってみよう 素数 :1 とその数以外では割り切れない数 ( これはできなくても構いません ) 提出先 akira.kanaoka@is.sci.toho-u.ac.jp 件名 プログラミング A: 第 5 回 注意 かならず メールで提出してから帰ってください また提出前に 実行画面を 私か TA に見せて確認を受けてから帰ってください ソースコード (java ファイル ) を添付してください 30