java代码,我想确保我正确地做到了吗?

时间:2012-11-07 17:37:49

标签: java validation

所以我必须设计并实现类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");
}

3 个答案:

答案 0 :(得分:2)

您的代码包含大量错误,并且在不使用任何合理的编码约定的情况下编写。

  1. 我们从小写字母开始变量和方法。 (MinutesSeconds等)
  2. while(Minutes>60 | Minutes==60);不是因为它的身体是空的。
  3. Minutes>60 | Minutes==60语法错误:您应该使用||作为“或”
  4. 虽然java允许在没有if-else的情况下编写{}结构,但强烈建议使用代码可读性
  5. Java编译器忽略空格和制表符。但是,您应该在if-else块内使用缩进。

答案 1 :(得分:0)

很少输入。

  1. 使用||代替|删除最后的;,添加花括号以包装下两个语句。

    while(Minutes>60 || Minutes==60){
     Minutes=Minutes-60;
     Hours=Hours+1;
    }
    while(Seconds>60 || Seconds==60){
      Seconds=Seconds-60;
      Minutes=Minutes+1;
    }
    
  2. 在处理分钟之前进行第二次处理,因为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;
    }
    
  3. 使用正确的命名约定,即Class Name以大写字母开头,而方法和变量以小写字母开头。

  4. 读完输入后,最后关闭Scanner

答案 2 :(得分:0)

而不是使用循环,你可以计算出循环的次数。

minutes += seconds / 60;
seconds %= 60;
hours += minutes / 60;
minutes %= 60;

注意:您应首先计算seconds的调整,因为它可能会改变小时数。