プログラミング入門1

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

プログラミング入門1

プログラミング入門1

メソッドのまとめ

プログラミング入門1

Java講座

プログラミング入門1

プログラミングA

プログラミング入門1

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

プログラミング入門1

2

JavaプログラミングⅠ

2

ガイダンス

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

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

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

プログラムの基本構成

JavaプログラミングⅠ

メソッドのまとめ

K227 Java 2

マークアップ言語

JavaプログラミングⅠ

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

Microsoft PowerPoint - prog03.ppt

Prog1_2nd

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

デジタル表現論・第6回

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

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

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

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

JavaプログラミングⅠ

Java言語 第1回

Prog1_3rd

Microsoft Word - java a.doc

JavaプログラミングⅠ

プログラミングA

Prog1_15th

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

JavaプログラミングⅠ

スライド 1

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

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

r1.dvi

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

JavaプログラミングⅠ

PowerPoint プレゼンテーション

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

Prog2_9th

プログラミングA

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

Prog1_6th

Javaプログラムの実行手順

2

テキストファイルの入出力1

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

ToDo: 今回のタイトル

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

情報処理Ⅰ

ガイダンス

デジタル表現論・第4回

Microsoft Word - Mac版 Eclipseの導入と設定.docx

PowerPoint Presentation

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

プログラミング基礎

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

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

マークアップ言語

Microsoft PowerPoint - prog04.ppt

ガイダンス

第1章 ビジュアルプログラミング入門

TestDesign for Web

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

ユーザーズマニュアル 神戸親和女子大学情報処理教育センター 年 4 月版

C#の基本

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

ガイダンス

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

Microsoft Word - CompA-Ex doc

JavaプログラミングⅠ

Microsoft Word - CombB-Ex

Prog2_10th

Programming-C-9.key

Microsoft PowerPoint ppt

I java A

PowerPoint プレゼンテーション

人工知能入門

PowerPoint プレゼンテーション


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

PowerPoint プレゼンテーション

JavaプログラミングⅠ

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

ch2_android_2pri.indd


Transcription:

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

授業開始前に ログオンして待機して ください Java 1 第 4 回 2

不要ファイルの掃除 前回デスクトップにファイルをダウンロードした場合 次のものを削除してください week03.zip デスクトップにファイルを置きすぎると コンピュータをシャットダウンできなくなります Java 1 第 4 回 3

授業を始めます 前回の課題は うまくできましたか? Java 1 第 4 回 4

ソースプログラムの清書 もし こんなふうになってしまったら public class Example { public static void main(string[] args) { System.out.println("Hello, world!"); System.out.println("Hello, everybody!"); メニューから ソース フォーマット あるいは Ctrl + Shift + f public class Example { public static void main(string[] args) { System.out.println("Hello, world!"); System.out.println("Hello, everybody!"); Java 1 第 4 回 5

復習前回のテーマ ユーザの入力がある対話的プログラム コンソールウィンドウを介して プログラムと対話する ユーザ入力によって処理の内容を変える Java 1 第 4 回 6

復習入力を行うプログラムの骨格 package [ パッケージ名 (j1.lesson03 など )]; import java.io.*; public class [ クラス名 (Hello など )] { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 以下にプログラムを書く Java 1 第 4 回 7

復習コンソールに入力された整数を 取得する命令 int input = Integer.parseInt(reader.readLine()); どちらでも OK int input; input = Integer.parseInt(reader.readLine()); この命令の実行する内容 1. コンソールからのユーザの入力を待つ (Enter キーが押されるまで ) 2. 入力された整数データを int 型変数 input に代入 3. 完了 Java 1 第 4 回 8

復習コンソールに入力された実数を 取得する命令 double input = Double.parseDouble(reader.readLine()); この命令の実行する内容 1. コンソールからのユーザの入力を待つ (Enter キーが押されるまで ) 2. 入力された実数データを double 型変数 input に代入 3. 完了 Java 1 第 4 回 9

復習 if 文 (if statement) if ( a > 0 ) b = a * 3; a の値が 0 より大きいときだけ代入文 b = a * 3; が実行される a > 0 は条件式とよばれる 条件式は boolean 型の値 (true か false のどちらか ) をとる a の値が 0 より大きいとき条件式 a > 0 の値は true となり そうでないとき false となる この > は比較演算子と呼ばれる Java 1 第 4 回 10

復習 if-else 文 (if-else statement) if ( a > 0 ) b = a * 3; else b = 0; a の値が 0 より大きいときだけ代入文 b = a * 3; が実行され そうでない場合は代入文 b = 0 が実行される Java 1 第 4 回 11

復習ブロックで命令を束ねる if ( a > 0 ) { b = a * 3; d = b + 8; else b = 5; if ( a > 0 ) { b = a * 3; d = b + 8; else { b = 5; d = 6; Java 1 第 4 回 12

復習 if 文の連鎖 if (chanceofrain > 100) System.out.println(" 降水確率は 0~100 でなければなりません "); else if (n < 0) System.out.println(" 降水確率は 0~100 でなければなりません "); else if (chanceofrain >= 50) System.out.println(" 傘を忘れずに "); else System.out.println(" 傘はいりません "); Java 1 第 4 回 13

復習終わり 思い出しましたね Java 1 第 4 回 14

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

for 文を用いた繰り返し実行 変数 i の値が 0 から 10 未満の間は i の値を 1 づつ加算しながら 命令文を実行する for (int i = 0 ; i < 10 ; 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 Java 1 第 4 回 16

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

for 文の初期化式 初期化式はfor 文を開始するときに1 度だけ実行される 通常 ループに使用する変数を宣言と同時に初期化する この変数はループ制御変数とよばれる for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); Java 1 第 4 回 18

注意 ループ制御変数は どのような名前でもよい よく使われる変数名は i, j, k など 初期化式で宣言された変数は for 文の中でのみ有効 for (int i = 0; i < 10; i++) System.out.println("i の値は " + i); // エラー ここで変数 i は使用できない System.out.println("for 文が終わったあとの i の値は " + i); Java 1 第 4 回 19

注意 ループ制御変数は for 文の外で宣言することできる その場合は for 文の中でも外でも使える int i; for (i = 0; i < 10; i++) System.out.println("i の値は " + i); // エラーではない i の値は 10 になるはず System.out.println("for 文が終わったあとの i の値は " + i); 以下の例は変数のスコープ 寿命を考える良い例だが ここでは説明しない 興味に火がついてしまった人は参考書を参照 int i=0; for (int i = 0; i < 10; i++) System.out.println("i の値は " + i); // エラーではない i の値は 0 になるはず System.out.println("for 文が終わったあとの i の値は " + i); Java 1 第 4 回 20

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

for 文のステップを進める式 ループの制御変数を操作する 繰り返しの毎回最後に実行される for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); Java 1 第 4 回 22

初期化式を比べてみよう for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); for (int i = 1 ; i < 10 ; 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 の値は 1 i の値は 2 i の値は 3 i の値は 4 i の値は 5 i の値は 6 i の値は 7 i の値は 8 i の値は 9 Java 1 第 4 回 23

条件式を比べてみよう for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); for (int i = 0 ; i <= 10 ; 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 の値は 0 i の値は 1 i の値は 2 i の値は 3 i の値は 4 i の値は 5 i の値は 6 i の値は 7 i の値は 8 i の値は 9 i の値は 10 Java 1 第 4 回 24

ステップを進める式を比べてみよう 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 第 4 回 25

カウントダウンと比べてみよう 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 第 4 回 26

for 文で繰り返される命令文 for (int i = 0 ; i < 10 ; i++ ) System.out.println("i の値は " + i); 複数の命令文を繰り返したいときはブロックにする for (int i = 0 ; i < 10 ; i++ ){ System.out.print("i の値は ); System.out.println(i); Java 1 第 4 回 27

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

for 文の中で計算する 1+2+ +10 int total = 0; for (int i = 1; i <= 10; i++) { total += i; System.out.println(" 入力の合計は " + total); 作業用の変数 total はループの外でも参照するので宣言もループの外でする Java 1 第 4 回 29

10 回の入力の総和 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int total = 0; for (int i = 1; i <= 10; i++) { System.out.print(i + " 回目の入力 "); int input = Integer.parseInt(reader.readLine()); total += input; System.out.println(" 入力の合計は " + total); Java 1 第 4 回 30

一緒に試してみよう for 文を使った繰り返しのプログラムを書く Java 1 第 4 回 31

演習の準備 今回の演習で使うテストドライバをいつものようにインストールします 一緒に作業をしますので 指示に従ってやってください Java 1 第 4 回 32

テストドライバの導入 1. プロジェクト java20xx にある test の左側の + をクリック 2. ツリーが展開されるので install-libraries.xml を右クリック 3. 実行(R) にマウスカーソルを合わせる 4. 1 Ant ビルド をクリック 5. コンソール タブに"BUILD SUCCESSFUL" と表示されれば成功 6. eclipseの画面でプロジェクト java20xx を右クリック 7. メニューが表示されるので 更新 あるいは 最新表示 をクリック 8. week04.zip をデスクトップなどにダウンロード 9. eclipseの画面でプロジェクト java20xx を右クリック 10. メニューから インポート (I) を選択 11. インポート ウィンドウが表示されるので Zip ファイル を選択 12. 次へ(N) をクリック 13. 宛先フォルダー (L): が java20xx になっていることを確認 14. From archive file: の右側にある 参照 (R)... あるいは ブラウズ(R)... をクリック 15. ファイルダイアログが表示されるので ダイアログ内に表示されたダウンロードしたファイルをダブルクリック 16. 前の画面に戻るので From archive file: のエリアに正しいパスが入力されていることを確認 17. フォルダ / の左にチェックがついていることを確認 ( ついていなければチェックボックスをクリック ) 18. 警告を出さずに既存リソースを上書き にチェックがついていることを確認 ( 上書きしたくないファイルがある場合はチェックを外す ) 19. 終了 (F) をクリック Java 1 第 4 回 33

テストドライバの導入に成功すると プロジェクト java20xx の中の test というフォルダに j1.lesson04.xml という名前のファイルが作成される このファイルには今週使用するテスト一式が記述されている Java 1 第 4 回 34

パッケージ 今回は j1.lesson04 というパッケージを作成する パッケージの作成は毎回の演習の最初に行うことを原則とする Java 1 第 4 回 35

パッケージの作成 1. java20xx プロジェクトの左側にある + をクリック 2. ツリーが展開されるので src の上で右クリック 3. マウスカーソルを 新規 に合わせる 4. パッケージ をクリック 5. パッケージ名は j1.lesson04 と入力する ( 以下いつも通り ) Java 1 第 4 回 36

クラスの作成 1. 先ほど作成したパッケージ j1.lesson04 の上で右クリック 2. マウスカーソルを 新規 に合わせる 3. クラス をクリック 4. クラス名は LoopPrint とする Java 1 第 4 回 37

以下のようにプログラムの骨格を書いて保存 ( 自動コンパイル ) Ctrl+S package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { Java 1 第 4 回 38

ここで骨格テスト 1. test フォルダの中にある j1.lesson04.xml を右クリック 2. 実行 の中にある 1 Ant ビルド を選択 3. LoopPrint に対する骨格テストを実行 Java 1 第 4 回 39

骨格テストのエラーメッセージ メッセージ クラスが存在しません クラスが public で宣言されていません main メソッドが存在しません main メソッドが public で宣言されていません main メソッドが static で宣言されていません main メソッドが void で宣言されていません main メソッドに throws IOException の指定がありません 詳細 j1.lesson04 に LoopPrint クラスが存在していない パッケージやクラス名を確認 class の前に public の指定がない public static void main(string[]) が存在していない mainという名前やstring[] の部分を確認 main メソッドを作る際に public が抜けている main メソッドを作る際に static が抜けている main メソッドを作る際に void 以外を指定している mainメソッドを作る際にthrows IOExceptionの指定を行っていない Java 1 第 4 回 40

main メソッドの中身を書くこのプログラムの意味をよく考えよう BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 41

プログラムの実行 1. LoopPrint.java の上で右クリック 2. メニューが表示されるので 実行 (R) にマウスカーソルを合わせる 3. 1 Java アプリケーション をクリック 4. コンソールでプログラムのメッセージにしたがって入力をしてみよう 5. 結果に納得できただろうか Java 1 第 4 回 42

機能テスト 1. Jtaf ウィンドウで LoopPrint に対する機能テスト 選択し実行する 2. エラーが出たらメッセージをよく読みソースプログラムを直して 今までのステップを繰り返す Java 1 第 4 回 43

コンソール入力には準備が必要 package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 44

ユーザに整数の入力を促す package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 45

int 型の変数 count を宣言ユーザの入力した整数を count に代入 package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 46

count の中身が 0 未満かどうかで分岐 package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 47

count の中身が 0 未満なら package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 48

count の中身が 0 以上なら package j1.lesson04; import java.io.*; public class LoopPrint { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 繰り返す回数を入力してください :"); int count = Integer.parseInt(reader.readLine()); // 0 回未満の繰り返しはエラー if (count < 0) { System.out.println(" 繰り返す回数には 0 以上を入れてください "); else { // i が 0 から count - 1 まで繰り返す for (int i = 0; i < count; i++) { System.out.println("Hello!"); Java 1 第 4 回 49

階乗の計算を行うプログラム 1. 先ほど作成したパッケージ j1.lesson04 の上で右クリック 2. マウスカーソルを 新規 に合わせる 3. クラス をクリック 4. クラス名は Factorial とする 5. 先と同じ手順でクラスを作成する Java 1 第 4 回 50

以下のようにプログラムの骨格を書いて保存 ( 自動コンパイル ) Ctrl+S package j1.lesson04; import java.io.*; public class Factorial { public static void main(string[] args) throws IOException { 骨格テストは pr02factorial-skel.xml Java 1 第 4 回 51

main メソッドの中身を書く public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 52

Factorial の実行 暗算でできる程度のテストはすぐにやってみよ 3! = 6 4! = 24 5! = 120 Java 1 第 4 回 53

機能テスト Factorial に対す機能テストを実行する これがうまく行ったら Factorial の解説をします Java 1 第 4 回 54

Factorial の解説 public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 55

コンソール入力の準備 public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 56

ユーザに整数の入力を促す public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 57

int 型の変数 n を宣言ユーザの入力した整数を n に代入 public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 58

n<0 かどうかで処理を分ける public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 59

n<0 なら public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 60

n<0 でないなら public class Factorial { public static void main(string[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print(" 整数を入力 :"); int n = Integer.parseInt(reader.readLine()); if (n < 0) { System.out.println(" 未定義です "); else { // 乗算の単位元は 1 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; System.out.println(n + " の階乗は " + factorial); Java 1 第 4 回 61

カウントダウンによる繰り返し n が 5 の場合 int factorial = 1; for (int i = n; i >= 1; i--) { factorial *= i; i i >= 1 factorial i-- 条件式 掛け算実行後の値 5 true 5 4 4 true 20 3 3 true 60 2 2 true 120 1 1 true 120 0 0 false 実行しない Java 1 第 4 回 62

課題 各自のペースで 第 04 週目の課題 をやってみよう 1. http://java.cis.k.hosei.ac.jp/ をブラウザで開く 2. 第 04 回 Loops (for) - をクリック 3. 第 04 週目課題をクリック Java 1 第 4 回 63

ToZero のヒント count へ入力 if (count が正 ){ for 文でカウントダウン else if (count が負 ){ for 文でカウントアップ else 0 を出力 Java 1 第 4 回 64

Average のヒント BufferedReader reader =...... // 回数を入力 int n = Integer.parseInt(reader.readLine()); if(n が 0 以下 ){ 警告 else{ total を初期化 for(int i=0; i<n; i++){ x に入力 total += x; 平均を出力 Java 1 第 4 回 65