私は単純なJavaのストップウォッチのコードを持っていますが、何らかの理由で常に0という時間を与えています。 私の変数と正しいものはないと思います...しかし、主な機能の間にメソッドを呼び出すことと関係がありますか?イムストップウォッチクラスは静的ではありませんのでストップウォッチのJavaコードは常に0を返す
import java.util.Scanner;
public class Stopwatch{
private float startTime;
private float endTime;
public float start(){
startTime = System.currentTimeMillis();
}
public float end(){
endTime = System.currentTimeMillis();
}
public float elapsedTime(){
float elapsedTime = startTime - endTime;
System.out.println(elapsedTime);
}
public float getStartTime(){
System.out.println(startTime);
}
public float getEndTime(){
System.out.println(endTime);
}
public static void main(String[] args){
String readString;
Scanner scr1 = new Scanner(System.in);
System.out.println("Press Enter to Begin the Stopwatch");
if (scr1.hasNextLine())
Stopwatch.start();
System.out.println("Press Enter to Stop the Stopwatch");
Scanner scr2 = new Scanner(System.in);
if (scr2.hasNextLine())
Stopwatch.end();
System.out.println("Elapsed Time is: " + Stopwatch.elapsedTime());
}
}
あなたが提供したコードはコンパイルされていません。あなたが実際に走った[mcve]を提供してください。 (なぜ 'hasNextLine'もチェックしているのかどうかはっきりしていませんが...)私はすべての問題が' Scanner'を使っている方法と関係していると思っています。(2つのインスタンスを作成するのは良い考えではありません)、基本的にストップウォッチの部分とは関係ありません。 –
あなたはなぜこれがうまくいかないかもしれないかあなた自身に尋ねることができます:*** Stopwatch.start()*** ... ***と同じですStopwatch.end()*** –
また 'float elapsedTime = startTime - endTime; 'ねじれているようだ? – xander