• 検索結果がありません。

プログラミングA

N/A
N/A
Protected

Academic year: 2021

シェア "プログラミングA"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラミングA

第5回 場合に応じた処理、繰り返し

2017年5月15日 東邦大学 金岡 晃

(2)

前回の復習(1)

このプログラムを

(3)

前回の復習(2)

このプログラムを

(4)
(5)

前回の復習

• 演算子

– 代入演算子、インクリメント、シフト演算子

• 型変換

(6)
(7)

こういうプログラムを作りたい

“おめでとう!これで100点越えの プレゼントを獲得!” というメッセージを出力 5教科のテスト 各科目の点数の合計が 100点以上 100点未満 “残念!100点越えのプレゼントまであと**点!” というメッセージを出力 条件に応じたプログラム “5教科の点数の合計が100点以上か”

(8)

条件

“5教科の点数の合計が100点以上か” true or false で答えられる 条件 式のうち、true あるいは false で答えられるもの • 関係演算子や論理演算子をつかって記述される • 条件は、式として評価され、trueまたはfalseの値 (boolean型)を返す 記号 名前 > より大きい >= 以上 < 未満 <= 以下 == 等価 != 非等価 関係 演算子 sum>=100

(9)

関係演算子とboolean

このプログラムを

(10)

条件に従ったプログラミング

“おめでとう!これで100点越えの プレゼントを獲得!” というメッセージを出力 5教科のテスト 各科目の点数の合計が 100点以上 100点未満 “残念!100点越えのプレゼントまであと**点!” というメッセージを出力 条件は書くことができた。では、条件に従って動作を変更させるには?? if if~else switch 特殊な文がある

(11)

if (条件){ 文1; 文2; … } if (条件) 文;

条件に従ったプログラミング(1)

:if文

もし~だったら、**しよう if文 “条件”がtrueだったら”文”を実行 if(sum>=100) System.out.println(“おめでとう!これで100点越えのプレゼン トを獲得!”); 複数の文を実行

(12)

条件に従ったプログラミング(2)

:if~else

もし~だったら、**しよう。 ~じゃなかったら、○○しよう if (条件) 文1; else 文2; if~else文 “条件”がtrueだったら”文1”を実行、 falseだったら”文2”を実行 if(sum>=100) System.out.println(“おめでとう!これで100点越えのプレゼ ントを獲得!”); else System.out.println(“残念!100点越えのプレゼントまであ と”+(100-sum)+”点!”);

(13)

if~elseの例題

このプログラムを

(14)

100点未満で 90点以上

条件に従ったプログラミング(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)+”点!”);

(15)

条件に従ったプログラミング(2)

:switch文

• こういったプログラムを作りたい – もし入力されたのがAだったら、Xという作業を – もし入力されたのがBだったら、Yという作業を – もし入力されたのがCだったら、Zという作業を – もしどれでもなかったら、Wという作業を • If~elseの組み合わせでもできるが… switch(式){ case 値1: 文1; break; case 値2: 文2; break; default: 文3; break; switch文

(16)

switch文

switch(式){ case 値1: 文1; break; case 値2: 文2; break; default: 文3; break; } switch文 “式”の値が“値1”だった とき、“文1”を実行。 “値2”だったときは、“文 2”を実行。 どれでもないとき (default)は、“文3”を実 行。 注意 switch()の中の式は、条件式だけではなく通常の式が使える break : 制御文(if文や、switch文)を途中で終了させる命令

(17)

switchの例題

このプログラムを

(18)

論理演算子

記号 名前 ! 論理否定(単項) && 論理積 || 論理和 “または”、”かつ”、の話。 複数の条件をまとめて評価するときや、条件の否定(~でないとき)をすると きに使う 条件が2つある場合どうしよう? たとえば「大学近辺の」「ランチの時間帯にやっている」という飲食 店を探すとき if ~ else を2回使えばできるが、 いっぺんにまとめてできないか? 論理 演算子

(19)

論理演算子のイメージ

&& (AND) || (OR) ! (NOT) A B A B A

(20)

論理演算子の例題

このプログラムを

(21)
(22)

こういうプログラムを作りたい

120人いる情報科学科全員のプログラミングAの 合計点と平均点を求めたい できないことはない。合計を入れておく変数を作り、 120回「次の人の点数を入れてください」と書く。 120回おんなじことをプログラムに書かない といけない??

(23)

for文

for (初期化の式; 繰り返すかどうか調べる式; 変化のための式) 文; for文 繰り返すか どうか調べる 式 初期化 文 変化のための式 true false for文の 構造

(24)

ループ内で変数を使う

初期化の式 : int i=1 繰り返すかどうか調べる式 : i <= 5 変化のための式 : i++ ループの変数を 文に使うこともできる

(25)

ループ内で変数を使う

繰り返すか どうか調べる 式 初期化 文 変化のための式 true int i=1 i<=5 “繰り返しています”の出力 i++

(26)

for文の例題

25

このプログラムを

(27)

while文

while(条件){ 文; … } while文 条件がtrueの間 繰り返す 条件 true 文 while文の 構造 false 文の中で 条件に入るものを 変化させないと 無限ループになる 恐れがある

(28)

do~while文

do{ 文; … } while(条件); while文 最初に文を実行し、 条件がtrueの間繰り返す 条件 文 true do~while文の 構造 false

(29)

breakとcontinue

• 制御文(if, switch, for, while)を途中ですっ飛ばして次に行く

– 次?

ループを外れる ループに戻る

break;

(30)

continueの例文

このプログラムを

(31)

今日の課題

1. 1~20までの偶数を出力するプログラムを作成してください – ただし、for文とif文を利用すること 2. キーボードからテストの点数を入力させ、その合計点と平均点を出力するコードを 記述してください – ただし、0が入力されたら入力が終了するものとし、何人(何科目)分の入力で も可能なように工夫してください 3. <チャレンジ問題> キーボードから入力された数字が素数であるかどうかを判定する、素数判定プログ ラムを作ってみよう素数:1とその数以外では割り切れない数(これはできなくても構いません) • 提出先 – akira.kanaoka@is.sci.toho-u.ac.jp • 件名 – プログラミングA:第5回 • 注意 – かならず、メールで提出してから帰ってください。また提出前に、実行画面を、 私かTAに見せて確認を受けてから帰ってください。 – ソースコード(javaファイル)を添付してください

参照

関連したドキュメント

チツヂヅに共通する音声条件は,いずれも狭母音の前であることである。だからと

問についてだが︑この間いに直接に答える前に確認しなけれ

1.4.2 流れの条件を変えるもの

が書き加えられている。例えば、図1のアブラナ科のナズ

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

それゆえ、この条件下では光学的性質はもっぱら媒質の誘電率で決まる。ここではこのよ

  東電は、2013 年 4 月末日時点で、6,013 件の和解仲介手続申立書(以下、 「申立書」と いう。 )の送達を受けている。これらのうち

断するだけではなく︑遺言者の真意を探求すべきものであ