所以我必须设计并实现类Clock以在程序中实现一天的时间.... 我完成了所有这些我只需要帮助这两个最后的部分(不确定它是否正确我是如何做到的) 1.当分钟大于或等于60时,增加小时。 当秒大于或等于60时增加分钟。 2. inputTime输入一个时钟对象的小时,分钟和秒。验证输入(小时0-23。分钟0-59,秒0-59)
这就是我所拥有的 1。
while (Minutes >= 60) {
Minutes = Minutes - 60;
Hours = Hours + 1;
}
while (Seconds >= 60) {
Seconds = Seconds - 60;
Minutes = Minutes + 1;
}
2
public void inputTime() {
Scanner input = new Scanner(System.in);
System.out.println("Enter Hours = ");
Hours = input.nextInt();
System.out.println("Enter Minutes = ");
Minutes = input.nextInt();
System.out.println("Enter Seconds = ");
Seconds = input.nextInt();
//validates the input
if (0 <= Hours && Hours < 24)
Hours = Hours;
else
System.out.println("invalid");
if (0 <= Minutes && Minutes < 60)
Minutes = Minutes;
else
System.out.println("invalid");
if (0 <= Seconds && Seconds < 60)
Seconds = Seconds;
else
System.out.println("invalid");
}
答案 0 :(得分:2)
您的代码包含大量错误,并且在不使用任何合理的编码约定的情况下编写。
Minutes
,Seconds
等)while(Minutes>60 | Minutes==60);
不是因为它的身体是空的。Minutes>60 | Minutes==60
语法错误:您应该使用||
作为“或”if-else
的情况下编写{}
结构,但强烈建议使用代码可读性if-else
块内使用缩进。答案 1 :(得分:0)
很少输入。
使用||
代替|
删除最后的;
,添加花括号以包装下两个语句。
while(Minutes>60 || Minutes==60){
Minutes=Minutes-60;
Hours=Hours+1;
}
while(Seconds>60 || Seconds==60){
Seconds=Seconds-60;
Minutes=Minutes+1;
}
在处理分钟之前进行第二次处理,因为seconds
处理会更改处理minutes
时应注意的minutes
。
while(Seconds>60 || Seconds==60){
Seconds=Seconds-60;
Minutes=Minutes+1;
}
while(Minutes>60 || Minutes==60){
Minutes=Minutes-60;
Hours=Hours+1;
}
使用正确的命名约定,即Class Name以大写字母开头,而方法和变量以小写字母开头。
读完输入后,最后关闭Scanner
。
答案 2 :(得分:0)
而不是使用循环,你可以计算出循环的次数。
minutes += seconds / 60;
seconds %= 60;
hours += minutes / 60;
minutes %= 60;
注意:您应首先计算seconds
的调整,因为它可能会改变小时数。