42
XMLPro 10回目 1

基礎構文班 10回目 ファイル入出力 break 乱数

Embed Size (px)

Citation preview

Page 1: 基礎構文班 10回目 ファイル入出力 break 乱数

XMLPro 10回目

1

Page 2: 基礎構文班 10回目 ファイル入出力 break 乱数

前回の復習

配列

2

Page 3: 基礎構文班 10回目 ファイル入出力 break 乱数

配列とか名前変わってるけど用途は変数といっしょです

配列はループで使うと便利なだけ

3

Page 4: 基礎構文班 10回目 ファイル入出力 break 乱数

Type1 変数

• int型変数aを宣言 中身を5で初期化

4

Page 5: 基礎構文班 10回目 ファイル入出力 break 乱数

Type2 配列

• int型配列aを宣言 作られた要素a[0]の中身を5で初期化

5

Page 6: 基礎構文班 10回目 ファイル入出力 break 乱数

Type3 変数

6

Page 7: 基礎構文班 10回目 ファイル入出力 break 乱数

Type4 配列

7

Page 8: 基礎構文班 10回目 ファイル入出力 break 乱数

本日の内容

ファイル入出力乱数を生成するRandomクラス無限ループとbreak文 ループから脱出するためには問題

8

Page 9: 基礎構文班 10回目 ファイル入出力 break 乱数

ファイル入出力

9

Page 10: 基礎構文班 10回目 ファイル入出力 break 乱数

• Javaには、ファイルから読み込んだり、ファイルに書き込んだりする機能(クラス)が入っています。

• ICPCでだいたい最初にでてくるので今回はファイル入出力の方法をやります

詳しい話はクラスしてからします

10

Page 11: 基礎構文班 10回目 ファイル入出力 break 乱数

• というわけでworkspace>プロジェクト名(XMLPro2014)直下にFilesフォルダ作成>中にtest.txt作成

11

Page 12: 基礎構文班 10回目 ファイル入出力 break 乱数

• workspaceの場所は人により違うと思います

12

Page 13: 基礎構文班 10回目 ファイル入出力 break 乱数

注意

• Eclipseから実行するときは、Eclipseのワーク

スペースからのパスで指定したしたほうがいいみたいです

例えるとLinuxのターミナルで今いる場所がプロジェクト名> となっているため

13

Page 14: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみてファイル読み込み

14

Page 15: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみてファイル書き込み

15

Page 16: 基礎構文班 10回目 ファイル入出力 break 乱数

Fr

• try {• //ファイルを扱うファイルクラスの準備パスでファイル指定• File file = new File("Files\\test.txt");• //文字をまとめて扱うときに使われるBufferedReaderクラス引数はFileReaderでfileを指定• BufferedReader br = new BufferedReader(new FileReader(file));

• String str;• //一行ずつ読み込み br.readLine();で• while ((str = br.readLine()) != null) {• System.out.println(str);• }• br.close();• } catch (FileNotFoundException e) {• System.out.println(e);• } catch (IOException e) {• System.out.println(e);• }

16

Page 17: 基礎構文班 10回目 ファイル入出力 break 乱数

Fw

• try {• //ファイルを扱うファイルクラスの準備パスでファイル指定• File file = new File("Files\\test.txt");

• //ファイルに書き込むFileWriter準備書き込む先は↑で指定したfile• FileWriter fw = new FileWriter(file);

• //fw.write(); で書き込み• fw.write("Hello World");• fw.close();• } catch (IOException e) {• System.out.println(e);• }

17

Page 18: 基礎構文班 10回目 ファイル入出力 break 乱数

で両方書いたら実行

• ファイルの読み書きできたらおkです

とりあえず、この文を記述すれば

ファイルから読み込み、書き込みが行えるってことだけわかればおkです

18

Page 19: 基礎構文班 10回目 ファイル入出力 break 乱数

今日のラスボス最後らへんのページにもあります

• 乱数を使って、じゃんけんをするプログラムをつくってみよう

• キーボードから自分の手を選択し、勝敗によって出力を変える

19

Page 20: 基礎構文班 10回目 ファイル入出力 break 乱数

乱数

20

Page 21: 基礎構文班 10回目 ファイル入出力 break 乱数

• Javaには、乱数を生成する機能(クラス)が入っています。

• こちらもまだ使う方法だけわかってもらえればおkです

21

Page 22: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみて乱数の生成

22

Page 23: 基礎構文班 10回目 ファイル入出力 break 乱数

実行すると

• 0~4までの数字がランダムに出力されます

23

Page 24: 基礎構文班 10回目 ファイル入出力 break 乱数

使い方

• importで読み込んで

• nextInt()で取得、範囲は0~()内の数値-1まで

24

Page 25: 基礎構文班 10回目 ファイル入出力 break 乱数

やってみて

• 100 ~199までの乱数を出力するプログラム

25

Page 26: 基礎構文班 10回目 ファイル入出力 break 乱数

答え

• 0~99までの値を取得して、それに100足せば100~199になるってだけです

26

Page 27: 基礎構文班 10回目 ファイル入出力 break 乱数

無限ループとbreak文

27

Page 28: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみて

• while文の条件にtrue入れると簡単に無限ループできます

28

Page 29: 基礎構文班 10回目 ファイル入出力 break 乱数

• 永遠に条件をみたさないようにしてもいいです

29

Page 30: 基礎構文班 10回目 ファイル入出力 break 乱数

止めるには赤い□クリック

30

Page 31: 基礎構文班 10回目 ファイル入出力 break 乱数

break;

• break文を使用するとループから抜けることができます

• break文が処理された時点で

break; の外側のループ1つが終了します

31

Page 32: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみて

32

Page 33: 基礎構文班 10回目 ファイル入出力 break 乱数

実行結果

• count が5になった時点でifの中身の

break; 実行→ループ終了

33

Page 34: 基礎構文班 10回目 ファイル入出力 break 乱数

書いてみて

• 2重forの中にbreak書いたらどうなるの?

34

Page 35: 基礎構文班 10回目 ファイル入出力 break 乱数

実行してみてくださいな

• break文の外側のループ1つが終了するため

jが5になったら内側のループ終了

35

Page 36: 基礎構文班 10回目 ファイル入出力 break 乱数

そんなひどい・・・

36

• Pixivより

Page 37: 基礎構文班 10回目 ファイル入出力 break 乱数

ローラ姫

37

Page 38: 基礎構文班 10回目 ファイル入出力 break 乱数

やってみて

• というわけでローラ姫でもなんでもいいが

「無限ループ状態にして条件を満たしたらbreak文でループを終了させる」

プログラムをつくってみてくださいな

38

Page 39: 基礎構文班 10回目 ファイル入出力 break 乱数

おまけ

• Thread (そのうちやるかも)を使いそれっぽく改良

39

Page 40: 基礎構文班 10回目 ファイル入出力 break 乱数

コピー用• package xmlpro0603;

• import java.util.Scanner;

• public class DQTH extends Thread {

• public static void main(String[] args) {• Scanner s = new Scanner(System.in);

• while (true) {• System.out.println("ローラ姫「わたくしもつれていってくださいますね?」");• System.out.println("1:はい" + "\t2:いいえ");• int ans = s.nextInt();

• if (ans == 2) {• try {• System.out.println("勇者「いいえ」");• System.out.println("ローラ姫「そんな、ひどい…」");• Thread.sleep(1000);• System.out.println("・");• Thread.sleep(1000);• System.out.println("・");• Thread.sleep(1000);• System.out.println("・");• Thread.sleep(1000);• System.out.println("・");• } catch (InterruptedException e) {• e.printStackTrace();• }• } else if (ans == 1) {• System.out.println("勇者「はい」");• System.out.println("ローラ姫「うれしゅうございます。ぽっ…」");• break;• }• }

• }• }

40

Page 41: 基礎構文班 10回目 ファイル入出力 break 乱数

問題1

• 乱数を使って、じゃんけんをするプログラムをつくってみよう

• キーボードから自分の手を選択し、勝敗によって出力を変える

41

Page 42: 基礎構文班 10回目 ファイル入出力 break 乱数

問題2

• じゃんけんをするプログラムをあいこならもう一度じゃんけんをするようにし、決着がつくまでじゃんけんを行うよう改良してみる

42