回答編集履歴

4

Thread ではなく、BufferedReader を使うコードを追加

2020/10/07 09:24

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -59,3 +59,59 @@
59
59
  ```
60
60
 
61
61
  Enter を押せば止まります。
62
+
63
+
64
+
65
+ **追記**
66
+
67
+ BufferedReaderクラスの readyメソッドを使ってみました。
68
+
69
+ ```Java
70
+
71
+ import java.io.*; // BufferedReader, InputStreamReader
72
+
73
+
74
+
75
+ class test0101 {
76
+
77
+ public static void main(String[] args){
78
+
79
+ var cl = new sample();
80
+
81
+ cl.random();
82
+
83
+ System.out.println("終了");
84
+
85
+ }
86
+
87
+ }
88
+
89
+
90
+
91
+ class sample {
92
+
93
+ void random() {
94
+
95
+ try (var br = new BufferedReader(new InputStreamReader(System.in))) {
96
+
97
+ var r = new java.util.Random();
98
+
99
+ while (!br.ready()) {
100
+
101
+ System.out.print(r.nextInt(10));
102
+
103
+ Thread.sleep(100);
104
+
105
+ }
106
+
107
+ br.readLine(); // Enter の読み飛ばし
108
+
109
+ } catch (Exception e) { e.printStackTrace(); }
110
+
111
+ }
112
+
113
+ }
114
+
115
+ ```
116
+
117
+ Enter を押せば止まります。

3

volatile の追加

2020/10/07 09:24

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  class sample {
34
34
 
35
- boolean running = true;
35
+ volatile boolean running = true;
36
36
 
37
37
 
38
38
 

2

int c = を削除

2020/10/07 03:17

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  t.start();
18
18
 
19
- int c = System.in.read(); // 入力待ち
19
+ System.in.read(); // 入力待ち
20
20
 
21
21
  cl.stop();
22
22
 

1

t.join(); を追加

2020/10/06 18:24

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -19,6 +19,8 @@
19
19
  int c = System.in.read(); // 入力待ち
20
20
 
21
21
  cl.stop();
22
+
23
+ t.join();
22
24
 
23
25
  System.out.println("終了");
24
26