プログラミング入門1

Similar documents
プログラミング入門1

プログラミング入門1

プログラミング入門1

プログラミング入門1

メソッドのまとめ

プログラミングA

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

2

K227 Java 2

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

プログラミング入門1

プログラミング入門1

プログラムの基本構成

2

Java講座

プログラミングA

JavaプログラミングⅠ

JavaプログラミングⅠ

メソッドのまとめ

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

2

プログラミングA

オブジェクト指向プログラミング・同演習 5月21日演習課題

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

JavaプログラミングⅠ

マークアップ言語

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

8 if switch for while do while 2

Prog1_15th

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

スライド 1

問題1 以下に示すプログラムは、次の処理をするプログラムである

マークアップ言語

デジタル表現論・第4回

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

JavaプログラミングⅠ

Prog1_2nd

JavaプログラミングⅠ

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

プログラミング入門1

r1.dvi

Prog1_3rd

5

Microsoft PowerPoint - prog03.ppt

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Javaによるアルゴリズムとデータ構造

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

デジタル表現論・第6回

解きながら学ぶJava入門編

Microsoft Word - java a.doc

PowerPoint プレゼンテーション

//// Assignment4_1.java // // 課題 1: 長方形の面積 /////////////////

ガイダンス

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

情報処理Ⅰ

情報実習Ⅱ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - prog04.ppt

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

Programming-C-9.key

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

明解Javaによるアルゴリズムとデータ構造

GEC-Java

Microsoft PowerPoint - chap10_OOP.ppt

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

プログラミング基礎I(再)

JavaプログラミングⅠ

スライド 1

Java学習教材

C#の基本2 ~プログラムの制御構造~


Prog2_9th

明解Javaによるアルゴリズムとデータ構造

Microsoft PowerPoint ppt

Prog1_13th

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

文字列操作と正規表現

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]


Prog1_6th

Microsoft Word - keisankigairon.ch doc

Java言語 第1回

JAVA入門

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (

Microsoft Word - CompA-Ex doc

JavaプログラミングⅠ

I java A

2

Prog2_10th

Microsoft Word - VBA基礎(3).docx

Transcription:

プログラミング入門 1 第 6 回 Switch 文 プロジェクトの持ち運び

授業開始前に ログオン後 不要なファイルを削除し て待機してください Java 1 第 6 回 2

前回のテーマ while 文を用いた繰り返し実行 for 文との使い分け 複雑な条件判定 && かつ または を使って Java 1 第 6 回 3

復習 : while 文はfor 文から 初期化式 を外に出し ステップを進める式 を繰り返し実行される文に移したもの for (int i = 1; i < 10; i++) { System.out.println("i = " + i); int i = 1; while ( i < 10 ){ System.out.println("i = " + i); i++; Java 1 第 6 回 4

復習 : for 文 while 文それぞれの使いどころ ループに入る時点で繰り返しの回数が決まっているときは... for (int i = 0; i < n; i++){ System.out.print("Hello"); 繰り返しの回数が指定できないときは番兵 (sentinel) をおく... int input; input = Integer.parseInt(reader.readLine()); while (input!= 0) { System.out.println(input); input = Integer.parseInt(reader.readLine()); Java 1 第 6 回 5 ステップを進める式 ( ループ制御変数の値を更新する式 ) はいろいろな姿をとる

復習 : for 文に相応しい問題 10000 円を利率 5% の複利で預金した際の 10 年後の預金額を計算する // 元本 double amount = 10000; // 10 回繰り返す (0 年後から始めて ; 10 年後まで ; 1 年ずつ考える ) for (int year = 0; year < 10; year++) { amount *= 1.05; System.out.println("10 年後は " + amount + " 円 "); 実行結果 10 年後は 16288.946267774418 円 Java 1 第 6 回 6

復習 : while 文に相応しい問題 10000 円を利率 5% の複利で預金した際に 預金額が 20000 円を超えるまでの年数を計算する double amount = 10000; // 元本 int year = 0; // 開始した時点では 0 年後 // 20000 円を超えるまで繰り返す (= 20000 円以下のうちは繰り返す ) // 20000 円以下であることを監視する番兵を置く while (amount <= 20000) { // 1 年後に利子をつける year++; amount *= 1.05; System.out.println(year + " 年後に 20000 円を超える "); 実行結果 15 年後に 20000 円を超える Java 1 第 6 回 7

今回のテーマ switch 文 主に break 文とともに 条件分岐のもうひとつのやり方 for 文, while 文における break 文 ループ抜け出しの非常手段 プロジェクトの持ち運び Eclipse の機能から export import Java 1 第 6 回 8

多くの選択肢からひとつを選んで実行するこんな形でよく使う if (n==2) B1 else if (n==3) B2 else if (n==5) B3 else if (n==7) B4 else B5 switch 文を使うと switch(n){ case 2: B1 case 3: B2 case 5: B3 case 7: B4 default: B5 Java 1 第 6 回 9

多くの選択肢からひとつを選んで実行するときどき使う形 if (n==2){ B1 B2 B3 B4 B5 else if (n==3){ B2 B3 B4 B5 else if (n==5){ B3 B4 B5 else if (n==7){ B4 B5 else B5 break 文がなければ 条件に合致する case に飛んで以後のすべての文が実行される if-else 文を使って同じことができる switch(n){ case 2: B1 case 3: B2 case 5: B3 case 7: B4 default: B5 Java 1 第 6 回 10

switch 文の構造と意味 switch ( 整数型の式 ) { case 整数型の定数 : 文の列 case 整数型の定数 : 文の列... default: 文の列 まず 整数型の式 の値が計算される その値と等しい 整数型の定数 の書かれている case が選ばれて その case の文の列が実行される このような case がなければ default の文の列が実行される break 文があると switch 文をぬける もし break 文がなければ次の case の文の列が実行される case ラベル と呼ばれる コロン ( セミコロンではない ) Java 1 第 6 回 11

switch の例 public class Modular3 { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input) { case 0: System.out.println("0 が入力されました "); case 1: System.out.println(" 入力された値は 1"); case 2: System.out.println("2 です "); default: System.out.println("0 でも 1 でも 2 でもありません "); Java 1 第 6 回 12

input == 0 の場合は public class Modular3 { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input) { case 0: System.out.println("0 が入力されました "); case 1: System.out.println(" 入力された値は 1"); case 2: System.out.println("2 です "); default: System.out.println("0 でも 1 でも 2 でもありません "); Java 1 第 6 回 13

input == 1 の場合は public class Modular3 { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input) { case 0: System.out.println("0 が入力されました "); case 1: System.out.println(" 入力された値は 1"); case 2: System.out.println("2 です "); default: System.out.println("0 でも 1 でも 2 でもありません "); Java 1 第 6 回 14

input == 2 の場合は public class Modular3 { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input) { case 0: System.out.println("0 が入力されました "); case 1: System.out.println(" 入力された値は 1"); case 2: System.out.println("2 です "); default: System.out.println("0 でも 1 でも 2 でもありません "); Java 1 第 6 回 15

input の値が 0,1,2 以外の場合 public class Modular3 { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input) { case 0: System.out.println("0 が入力されました "); case 1: System.out.println(" 入力された値は 1"); case 2: System.out.println("2 です "); default: System.out.println("0 でも 1 でも 2 でもありません "); Java 1 第 6 回 16

case を重ねることもある public class MultiCase { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力してください :"); int input = Integer.parseInt(reader.readLine()); switch (input % 10) { case 0: System.out.println("10の倍数です "); // 10 で割った余りが 1 または 9 case 1: case 9: System.out.println(" もう少しで10の倍数でした "); case 5: System.out.println("10の倍数ではありませんが5の倍数です "); default: System.out.println("10の倍数ではありません "); Java 1 第 6 回 17

ループ抜け出しの break 文 value が素数か判定する int divisor = 0; for (int i = 2; i < value; i++) { if (value % i == 0) { divisor = i; if (divisor==0) System.out.println(value + " is prime"); else System.out.println(value + " is divisible by " + divisor); 素朴な素数判定法である break 文は途中でのループ抜け出しに使える Java 1 第 6 回 18

2 から value-1 までの数で順に割ってみればよいが int divisor = 0; for (int i = 2; i < value; i++) { if (value % i == 0) { divisor = i; if (divisor==0) System.out.println(value + " is prime"); else System.out.println(value + " is divisible by " + divisor); Java 1 第 6 回 19

ある i で割り切れてしまったら int divisor = 0; for (int i = 2; i < value; i++) { if (value % i == 0) { divisor = i; if (divisor==0) System.out.println(value + " is prime"); else System.out.println(value + " is divisible by " + divisor); divisor に割り切った数 i を代入してループを打ち切る Java 1 第 6 回 20

判定 int divisor = 0; for (int i = 2; i < value; i++) { if (value % i == 0) { divisor = i; if (divisor==0) System.out.println(value + " is prime"); else System.out.println(value + " is divisible by " + divisor); divisor==0 なら割り切る i が無かったということ divisor!=0 なら割り切る i があったということ Java 1 第 6 回 21

一緒にやってみよう 今回の演習で使うテストドライバをいつものようにインストールする テストドライバの導入に成功すると プロジェクト java20xx の中の test というフォルダに j1.lesson06.xml という名前のファイルが作成される このファイルには今週使用するテスト一式が記述されている j1.lesson06 というパッケージを作成する 講義資料にある Id2Class というプログラムを このパッケージに作成する 講義資料にある手順でテスト 実行までやること 講義資料にあるプロジェクトの持ち運びの解説をみて zip ファイルを作成せよ Java 1 第 6 回 22

Id2Class の解説 public class Id2Class { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 学籍番号の下 4 桁を入力 :"); int id = Integer.parseInt(reader.readLine()); // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("Aクラス "); case 1: System.out.println("Bクラス "); case 10: System.out.println("Cクラス "); case 11: System.out.println("Dクラス "); default: System.out.println(" 不明なクラス "); Java 1 第 6 回 23

入力の準備から学生番号 (4 桁 ) の入力まで public class Id2Class { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 学籍番号の下 4 桁を入力 :"); int id = Integer.parseInt(reader.readLine()); // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("Aクラス "); case 1: System.out.println("Bクラス "); case 10: System.out.println("Cクラス "); case 11: System.out.println("Dクラス "); default: System.out.println(" 不明なクラス "); Java 1 第 6 回 24

学生番号 (4 桁 ) から上位 2 桁を取り出す n 3 n 2 n 1 n 0 /100 n 3 n 2... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("Aクラス "); case 1: System.out.println("Bクラス "); case 10: System.out.println("Cクラス "); case 11: System.out.println("Dクラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 25

上位 2 桁が 00 の場合... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("A クラス "); case 1: System.out.println("B クラス "); case 10: System.out.println("C クラス "); case 11: System.out.println("D クラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 26 break 文が実行されるとここへ

上位 2 桁が 01 の場合... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("A クラス "); case 1: System.out.println("B クラス "); case 10: System.out.println("C クラス "); case 11: System.out.println("D クラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 27 break 文が実行されるとここへ

上位 2 桁が 10 の場合... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("A クラス "); case 1: System.out.println("B クラス "); case 10: System.out.println("C クラス "); case 11: System.out.println("D クラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 28 break 文が実行されるとここへ

上位 2 桁が 11 の場合... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("A クラス "); case 1: System.out.println("B クラス "); case 10: System.out.println("C クラス "); case 11: System.out.println("D クラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 29 break 文が実行されるとここへ

その他の場合... // id = 学科番号 * 1000 + クラス番号 * 100 + 2 桁の出席番号 switch (id / 100) { case 0: System.out.println("A クラス "); case 1: System.out.println("B クラス "); case 10: System.out.println("C クラス "); case 11: System.out.println("D クラス "); default: System.out.println(" 不明なクラス ");... Java 1 第 6 回 30 switch が終了してここへ

プロジェクトの持ち運び大学から自宅へ export/import の詳細ついては第 1 回講義資料を参照 ラボ教室の作業環境 個人の作業環境 ( 自宅など ) Eclipse プロジェクトを export プロジェクトを import Eclipse java2005.zip zip ファイル E メール添付で java2005.zip zip ファイル Java 1 第 6 回 31

自習した成果を大学の環境に持ち込む ラボ教室の作業環境 個人の作業環境 ( 自宅など ) Eclipse プロジェクトを import プロジェクトを export Eclipse java2005.zip zip ファイル E メール添付で java2005.zip zip ファイル Java 1 第 6 回 32

課題 各自のペースで 第 06 週目の課題 をやってみよう Java 1 第 6 回 33

課題 0601 のヒント 入力する if ( 入力された数が 0 以上 ){ switch( 入力された数の 1 の位 ){... 場合わけする... else... 注 1 の位は 10 で割った余り Java 1 第 6 回 34

課題 0602 のヒント 1000 円札 5000 円札 10000 円札の枚数を数える変数を準備 入力する while( 入力された数が 0 でない ){ switch( 入力された数 ){ case 1000:...... default: " お札ではありません " と表示 入力する 枚数 合計金額の出力など Java 1 第 6 回 35

課題 0603 のヒント max, min を保持する変数 入力のための変数などを用意する初期値を慎重に吟味する必要がある 入力する while ( 入力が 0 以上 100 以下 ){ 入力と max の比較をして必要なら max を更新入力と min の比較をして必要なら min を更新入力する 結果を表示する (max の初期値を -1 にしておくと入力が無かった場合の対応も可能 ) Java 1 第 6 回 36