前提・実現したいこと
Enterボタンを押して*を表示してからまたEnterを押すまでの時間を計測したいです。
該当のソースコード
java
1import java.util.Random; 2class RandomTimer extends Thread{ 3 long count; 4 boolean running = true; 5 6 public RandomTimer(long count,boolean runnnig) { 7 //最大待ち時間(ミリ秒)を受け取るコンストラクタを作りたい 8 Random rand = new Random();//0から最大待ち時間までの間のランダムな値をRandomクラスで生成 9 long time = rand.nextInt(10); 10 count = ;/生成した値を初期値として代入; 11 } 12 public void run(){ 13 while(running) { 14 try { 15 Thread.sleep(10); 16 }catch(InterruptedException e) { 17 System.out.println(e); 18 } 19 count = count - 10; 20 if(count < 0) { 21 System.out.println("*"); 22 } 23 } 24 } 25 public long reponseTime() { 26 return -count; 27 } 28 public void stopRunnig() { 29 running = false; 30 } 31} 32class QuickPress{ 33 public static void main(String[] args) { 34 RandomTimer t = new RandomTimer(10, true); 35 System.out.println("Hit enter to start:"); 36//Enterが押されたらRandomTimerインスタンスのスレッド実行を開始し、すぐにまたEnterキーを待つ 37 t.start(); 38 System.out.println("タイム:"//二回目のEnterボタンが押されたらresponseTimeメソッドを読んで値を表示); 39 try { 40 t.join(); 41 }catch(InterruptedException e) { 42 System.out.println(e); 43 } 44 } 45}
試したこと
Enterの処理の仕方などがいまいちよくわかりません.
また実行のイメージは
Hit Enter to start:
*
タイム:300
というような実行結果にしたいです。
教えてほしい部分をコメントアウトしました。わかる方がいれば、教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
コードは, 「```java」と「```」の間にある「ソースコード」という文字列に上書きする形で記入してください.
> Enterボタンを押して*を表示してからまたEnterを押すまでの時間を計測
計測の開始は最初の Enter を押したときでしょうか, それとも * を表示したときでしょうか.
> いまいちよくわかりません
では, 何がお分かりなのでしょうか.
コードに不思議な箇所があります.
```
public RandomTimer() {
setCount(count);
}
```
これは何をしようとされているのでしょう.
```
int MaxTime = 5;
```
MaxTime は使われておりませんが, 何に使うものでしょう.
```
public void setCount(long count) {
this.count = time;
}
```
パラメータの count を使用せず, わざわざここで time を count に入れているのはなぜでしょう.
```
for(long count = 11 ;count < 0;count--) {
if(count < 0) {
System.out.println("*");
}
}
```
このループはなぜあるのでしょう.
```
public long responseTime() {
return -count;
}
```
メソッド名から時間を返すように見えますが, count は何も変わっていないと思います.
どういうことでしょうか.
わかる範囲でプログラムを改善してみました。コメントアウトしてる部分について教えていただけるとありがたいです。
Enterキーボタンの使い方がいまいちわからないのでエンターキーのやり方からプログラムを教えていただけるとありがたいです。
```
public RandomTimer(long count,boolean runnnig) {
//最大待ち時間(ミリ秒)を受け取るコンストラクタを作りたい
```
この count と runnnig は何でしょうか.
```
count = count - 10;
```
なぜ 10 を引いているのでしょう.
回答2件
あなたの回答
tips
プレビュー