我需要一些帮助来解决我的时钟问题。我对逻辑感到困惑。基本上,我想做的就是这个。如果给定的输入是:23:25:55
,当第二个达到60
时,它应该变成00
并添加+1
精确到分钟。但是,它会打印 23:25:60
,并且只有在 Netbeans 上按 OK
后,它才会变为 23:26:00
。如果60不再出现就更好了。以下是我在类里面使用的方法。
public void incHour(){
hr++;
if (hr == 24){
hr = 0;
}
printTime();
}
public void incMinute(){
min++;
if (min > 59){
incMinute();
min = 0;
}
printTime();
}
public void incSecond(){
sec++;
if (min > 59){
incMinute();
sec = 0;
}
printTime();
}
最佳答案
您有一堆复制和粘贴错误。在 incMinute()
中,更改为
if (min > 59){
incHour(); //changed from incMinute();
并在incSecond()
中,更改为
if (sec > 59){ //changed from if (min > 59){
incMinute();
编辑
The 60 still shows up.
这是因为当 sec > 59
时,您将其增加到 60,然后也从 incMinute()
方法调用 printTime()
。首先进行归零,然后添加一个像这样的 else 子句以仅打印一次。您必须对 incMinute()
方法进行相同的更改:
public void incSecond(){
sec++;
if (sec > 59){
sec = 0;
incMinute();
} else {
printTime();
}
}
关于java - JAVA 中的时钟循环帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24678575/