Download - 基礎構文班 10回目 ファイル入出力 break 乱数
![Page 1: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/1.jpg)
XMLPro 10回目
1
![Page 2: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/2.jpg)
前回の復習
配列
2
![Page 3: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/3.jpg)
配列とか名前変わってるけど用途は変数といっしょです
配列はループで使うと便利なだけ
3
![Page 4: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/4.jpg)
Type1 変数
• int型変数aを宣言 中身を5で初期化
4
![Page 5: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/5.jpg)
Type2 配列
• int型配列aを宣言 作られた要素a[0]の中身を5で初期化
5
![Page 6: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/6.jpg)
Type3 変数
6
![Page 7: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/7.jpg)
Type4 配列
7
![Page 8: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/8.jpg)
本日の内容
ファイル入出力乱数を生成するRandomクラス無限ループとbreak文 ループから脱出するためには問題
8
![Page 9: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/9.jpg)
ファイル入出力
9
![Page 10: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/10.jpg)
• Javaには、ファイルから読み込んだり、ファイルに書き込んだりする機能(クラス)が入っています。
• ICPCでだいたい最初にでてくるので今回はファイル入出力の方法をやります
詳しい話はクラスしてからします
10
![Page 11: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/11.jpg)
• というわけでworkspace>プロジェクト名(XMLPro2014)直下にFilesフォルダ作成>中にtest.txt作成
11
![Page 12: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/12.jpg)
• workspaceの場所は人により違うと思います
12
![Page 13: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/13.jpg)
注意
• Eclipseから実行するときは、Eclipseのワーク
スペースからのパスで指定したしたほうがいいみたいです
例えるとLinuxのターミナルで今いる場所がプロジェクト名> となっているため
13
![Page 14: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/14.jpg)
書いてみてファイル読み込み
14
![Page 15: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/15.jpg)
書いてみてファイル書き込み
15
![Page 16: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/16.jpg)
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 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/17.jpg)
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 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/18.jpg)
で両方書いたら実行
• ファイルの読み書きできたらおkです
とりあえず、この文を記述すれば
ファイルから読み込み、書き込みが行えるってことだけわかればおkです
18
![Page 19: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/19.jpg)
今日のラスボス最後らへんのページにもあります
• 乱数を使って、じゃんけんをするプログラムをつくってみよう
• キーボードから自分の手を選択し、勝敗によって出力を変える
19
![Page 20: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/20.jpg)
乱数
20
![Page 21: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/21.jpg)
• Javaには、乱数を生成する機能(クラス)が入っています。
• こちらもまだ使う方法だけわかってもらえればおkです
21
![Page 22: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/22.jpg)
書いてみて乱数の生成
22
![Page 23: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/23.jpg)
実行すると
• 0~4までの数字がランダムに出力されます
23
![Page 24: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/24.jpg)
使い方
• importで読み込んで
• nextInt()で取得、範囲は0~()内の数値-1まで
24
![Page 25: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/25.jpg)
やってみて
• 100 ~199までの乱数を出力するプログラム
25
![Page 26: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/26.jpg)
答え
• 0~99までの値を取得して、それに100足せば100~199になるってだけです
26
![Page 27: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/27.jpg)
無限ループとbreak文
27
![Page 28: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/28.jpg)
書いてみて
• while文の条件にtrue入れると簡単に無限ループできます
28
![Page 29: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/29.jpg)
• 永遠に条件をみたさないようにしてもいいです
29
![Page 30: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/30.jpg)
止めるには赤い□クリック
30
![Page 31: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/31.jpg)
break;
• break文を使用するとループから抜けることができます
• break文が処理された時点で
break; の外側のループ1つが終了します
31
![Page 32: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/32.jpg)
書いてみて
32
![Page 33: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/33.jpg)
実行結果
• count が5になった時点でifの中身の
break; 実行→ループ終了
33
![Page 34: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/34.jpg)
書いてみて
• 2重forの中にbreak書いたらどうなるの?
34
![Page 35: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/35.jpg)
実行してみてくださいな
• break文の外側のループ1つが終了するため
jが5になったら内側のループ終了
35
![Page 36: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/36.jpg)
そんなひどい・・・
36
• Pixivより
![Page 37: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/37.jpg)
ローラ姫
37
![Page 38: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/38.jpg)
やってみて
• というわけでローラ姫でもなんでもいいが
「無限ループ状態にして条件を満たしたらbreak文でループを終了させる」
プログラムをつくってみてくださいな
38
![Page 39: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/39.jpg)
おまけ
• Thread (そのうちやるかも)を使いそれっぽく改良
39
![Page 40: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/40.jpg)
コピー用• 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 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/41.jpg)
問題1
• 乱数を使って、じゃんけんをするプログラムをつくってみよう
• キーボードから自分の手を選択し、勝敗によって出力を変える
41
![Page 42: 基礎構文班 10回目 ファイル入出力 break 乱数](https://reader034.vdocuments.pub/reader034/viewer/2022052311/559524b21a28abb9318b472f/html5/thumbnails/42.jpg)
問題2
• じゃんけんをするプログラムをあいこならもう一度じゃんけんをするようにし、決着がつくまでじゃんけんを行うよう改良してみる
42