プログラミング入門1

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

プログラミング入門1

プログラミング入門1

プログラムの基本構成

メソッドのまとめ

Java講座

2

JavaプログラミングⅠ

プログラミング入門1

プログラミング入門1

プログラミングA

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

JavaプログラミングⅠ

メソッドのまとめ

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

プログラミング入門1

2

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

K227 Java 2

プログラミングA

プログラミングA

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

Microsoft PowerPoint - prog03.ppt

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

JavaプログラミングⅠ

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

マークアップ言語

プログラミング入門1

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

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

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

ガイダンス

Microsoft Word - VBA基礎(3).docx

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

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

JavaプログラミングⅠ

Prog1_3rd

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

Microsoft Word - java a.doc

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

プログラミング基礎

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

情報処理Ⅰ

r1.dvi

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

8 if switch for while do while 2

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

2

JavaプログラミングⅠ

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

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

マークアップ言語

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

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

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

Assignment_.java 0 Assignment_.java 課題 : 台形の面積 / class Assignment_ public static void main(string[] args) throws IOException キーボード準備 int top, bottom,

Prog2_9th

Prog1_6th

Prog1_2nd

デジタル表現論・第4回

Prog1_15th

Microsoft Word - 3new.doc

Microsoft PowerPoint - prog04.ppt

5

kantan_C_1_iro3.indd

デジタル表現論・第6回

Microsoft PowerPoint - chap10_OOP.ppt

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

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

スライド 1

Microsoft PowerPoint - C4(反復for).ppt

JavaプログラミングⅠ

Javaプログラムの実行手順

PowerPoint プレゼンテーション

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

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

JavaプログラミングⅠ

Microsoft Word - CompA-Ex doc

JavaプログラミングⅠ

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Microsoft Word - keisankigairon.ch doc

PowerPoint プレゼンテーション

Program Design (プログラム設計)

スライド 1

JAVA入門

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

PowerPoint Presentation

GEC-Java

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Taro-Basicの基礎・条件分岐(公

Java言語 第1回

情報実習Ⅱ

Prog2_10th

PowerPoint プレゼンテーション


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

Transcription:

プログラミング入門 1 第 5 回 繰り返し (while ループ )

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

参考書について 参考書は自分にあったものをぜひ手元において自習してください 授業の WEB 教材は勉強の入り口へみなさんを案内するのが目的でつくられている これで十分という訳ではない 第 1 回に紹介した本以外にも良書がたくさんある Java 1 第 5 回 3

ソースプログラムの健康について ソースプログラムは常に健康な状態に保ってください 健康な状態とは インデント ( 字下げ ) が適切にされていて 論理が一目で分かる状態をいう Eclipse では清書の機能があるが文法誤りがあるとだめ 命令文 ブロック単位でこまめに保存し 誤りが蓄積しないようにするとよい Java 1 第 5 回 4

前回のテーマ 繰り返し実行のための便利な書き方 for 文を用いる Java 1 第 5 回 5

for 文の構造 for (< 初期化式 > ; < 条件式 > ; < ステップを進める式 >) 文 for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); Java 1 第 5 回 6

ループ継続の判定 毎回最初に条件式が true か false かチェックされる true であればその回を実行する false であれば その回は実行されず for 文の繰り返し実行自体も打ち切られる for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); Java 1 第 5 回 7

ステップの進め方いろいろ for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); for (int i = 0 ; i < 10 ; i+=2 ) System.out.println("i の値は " + i); i の値は 0 i の値は 1 i の値は 2 i の値は 3 i の値は 4 i の値は 5 i の値は 6 i の値は 7 i の値は 8 i の値は 9 i の値は 0 i の値は 2 i の値は 4 i の値は 6 i の値は 8 Java 1 第 5 回 8

カウントダウンも活用しよう for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); for (int i = 9 ; i >=0 ; i-- ) System.out.println("i の値は " + i); i の値は 0 i の値は 1 i の値は 2 i の値は 3 i の値は 4 i の値は 5 i の値は 6 i の値は 7 i の値は 8 i の値は 9 i の値は 9 i の値は 8 i の値は 7 i の値は 6 i の値は 5 i の値は 4 i の値は 3 i の値は 2 i の値は 1 i の値は 0 Java 1 第 5 回 9

ユーザが指定した回数だけ繰り返す BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int input = Integer.parseInt(reader.readLine()); for (int i = 0; i < input ; i++) { ( 命令文の列 ) 変数がきてもよい ループ制御の変数 i と役割が違う Java 1 第 5 回 10

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

while 文の意味と構造 条件式が true の間繰り返す while ( 条件式 ) 文 繰り返し実行したい文が複数のときはブロックにする while ( 条件式 ) { 文の列 Java 1 第 5 回 12

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 第 5 回 13

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

番兵 (sentinel) によるループの制御... int input; input = Integer.parseInt(reader.readLine()); while (input!= 0) { System.out.println(input); input = Integer.parseInt(reader.readLine()); 番兵 input が 0 でない間繰り返す ループに入る前の入力で0だとループは 1 度も実行されない Java 1 第 5 回 15

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 第 5 回 16

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 第 5 回 17

do-while 文 という while 文に似たものがあってプログラムが短く書けることがある ここでは説明しない WEB 教材の説明を読んでおくこと Java 1 第 5 回 18

AND 演算子 java ではこのようには書けない 0 <= a < 10 このようなときは 次のように分割して考える 実際 こんなふうに使う 0 <= a && a < 10 if (0 <= a && a < 10) { System.out.println("a の値が 0 以上 10 未満 "); 3 つ以上つなげてもよい 0 <= a && a < 10 && a!= 5 Java 1 第 5 回 19

OR 演算子 ( 実際は or-else) "a<0 または 10 <= a" のような条件は で結ぶ 0 10 if (a < 0 10 <= a) { System.out.println("a の値が 0 未満または 10 以上 "); 3 つ以上続けてもよい a < 0 10 <= a a == 5 0 5 10 Java 1 第 5 回 20

複雑な条件 0 10 20 30 このような範囲に入るという条件は (0 <= a && a < 10) (20 <= a && a < 30) && の方が より優先順位が高いので以下の式と同等 0 <= a && a < 10 20 <= a && a < 30 Java 1 第 5 回 21

0 10 NOT 演算子 の否定は! 0 <= a && a < 10 0 10!(0 <= a && a < 10) これは次の式と同等 a < 0 10 <= a Java 1 第 5 回 22

演算子の優先順位の注意!a < 0 と書くと (!a) < 0 と解釈されてコンパイルエラー!(a < 0) これなら OK Java 1 第 5 回 23

い1 二項右から = 代入高参考 : 演算子の優先順位表 優先順位 項数 結合方向 演算子 意味 13 単項 なし ++ 変数の中身を1だけ増やす 13 単項 なし -- 変数の中身を1だけ減らす 13 単項 右方向から! 論理否定 (true->false, false->true) 12 二項 左から * 乗算 12 二項 左から / 除算 12 二項 左から % 剰余 11 二項 左から + 加算 11 二項 左から - 減算 9 二項 なし > より大きい 9 二項 なし < より小さい 9 二項 なし >= 以上 9 二項 なし <= 以下 8 二項 なし == 等しい 8 二項 なし!= 等しくない 4 二項 左から && かつ (and also) 3 二項 左から または (or else) Java 1 第 5 回 24

一緒にやってみよう 今回の演習で使うテストドライバをいつものようにインストールする テストドライバの導入に成功すると プロジェクト java20xx の中の test というフォルダに j1.lesson05.xml という名前のファイルが作成される このファイルには今週使用するテスト一式が記述されている j1.lesson05 というパッケージを作成する WEB 教材にある ComplexCondition, UntilLoop というプログラムを このパッケージに作成する WEB 教材にある手順でテスト 実行までやること Java 1 第 5 回 25

ComplexCondition の解説 public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 26

変数 a に整数を入力する public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 27

0 10 a public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 28

-10 20 a public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 29

a は正の数の場合 public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 30

a を 5 で割った余りが 0 つまり a が 5 の倍数 public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 31

a を 7 で割った余りが 0 つまり a が 7 の倍数 public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 32

a が 5 の倍数である または a が 7 の倍数である public class ComplexCondition { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int a = Integer.parseInt(reader.readLine()); if (0 <= a && a < 10) System.out.println("0 以上かつ 10 未満 "); else if (a < -10 a >= 20) System.out.println("-10 未満または 20 以上 "); if (0 < a && ((a % 5) == 0 (a % 7) == 0)) System.out.println("5 の倍数または 7 の倍数 "); Java 1 第 5 回 33

UntilLoop の解説 public class UntilLoop { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 入力を保存する変数を宣言 int input; // 最初の入力 System.out.print("0 で終了 :"); input = Integer.parseInt(reader.readLine()); // 入力が 0 以外なら繰り返す while (input!= 0) { System.out.println("Hello!"); // 次の入力 System.out.print("0 で終了 :"); input = Integer.parseInt(reader.readLine()); Java 1 第 5 回 34

最初の入力で input に 0 が入ると while ループは一度も実行されない public class UntilLoop { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 入力を保存する変数を宣言 int input; // 最初の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); // 入力が0 以外なら繰り返す while (input!= 0) { System.out.println("Hello!"); // 次の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); Java 1 第 5 回 35

最初の入力で input に 0 以外が入ると while ループの第 1 回が実行される public class UntilLoop { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 入力を保存する変数を宣言 int input; // 最初の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); // 入力が0 以外なら繰り返す while (input!= 0) { System.out.println("Hello!"); // 次の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); Java 1 第 5 回 36

ループ内の入力で input に 0 以外が入ると while ループの次の回に進める public class UntilLoop { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 入力を保存する変数を宣言 int input; // 最初の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); // 入力が0 以外なら繰り返す while (input!= 0) { System.out.println("Hello!"); // 次の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); Java 1 第 5 回 37

ループ内の入力で input に 0 が入ると while ループは打ち切られる public class UntilLoop { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 入力を保存する変数を宣言 int input; // 最初の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); // 入力が0 以外なら繰り返す while (input!= 0) { System.out.println("Hello!"); // 次の入力 System.out.print("0で終了 :"); input = Integer.parseInt(reader.readLine()); Java 1 第 5 回 38

課題 各自のペースで 第 05 週目の課題 をやってみよう Java 1 第 5 回 39

TriangleCheck のヒント Java の文法通りではないので注意 if (a = b = c) 正三角形 else if (a = b または b = c または c = a) 二等辺三角形 else 一般の三角形 Java 1 第 5 回 40

ScoreAverage のヒント 入力データ格納のための変数 合計のための変数 データ個数数えるための変数などの宣言初期化 最初の入力 if ( 入力 <0 入力 >100) 入力データなしのときの処理 else{ while ( 継続条件 ) { 入力データを合計に加えるデータ個数を1 増やす入力する 合計をデータ個数で割って出力 Java 1 第 5 回 41