-4

だから私はプログラムに時刻を実装するためにクラスClockを設計して実装する必要があります....私はそれをすべて完了しました私はこれらの最後の2つの部分の助けが必要です(私がそれをどのように行ったかはわかりません) 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.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");
}
4

3 に答える 3

2

コードには大量の間違いが含まれており、合理的なコーディング規則を使用せずに記述されています。

  1. 変数とメソッドは小文字から始めます。(MinutesなどSeconds)
  2. while(Minutes>60 | Minutes==60);本体が空なので問題ありません。
  3. Minutes>60 | Minutes==60は構文的に間違っています。||「または」に使用する必要があります
  4. Java はそれif-elseなしで構造を書くことができます{}が、コードを読みやすくするために強くお勧めします
  5. Java コンパイラはスペースとタブを無視します。if-elseただし、ブロック内ではインデントを使用する必要があります。
于 2012-11-07T17:44:45.587 に答える
0

いくつかの入力。

  1. ||in の代わりに使用して最後に the|を削除し、;中かっこを追加して次の 2 つのステートメントをラップします。

    while(Minutes>60 || Minutes==60){
     Minutes=Minutes-60;
     Hours=Hours+1;
    }
    while(Seconds>60 || Seconds==60){
      Seconds=Seconds-60;
      Minutes=Minutes+1;
    }
    
  2. 加工の際に気をつけなければならないことは、seconds加工によって変わるので、微細加工の前に2次加工を行ってください。minutesminutes

    while(Seconds>60 || Seconds==60){
      Seconds=Seconds-60;
      Minutes=Minutes+1;
    }
    while(Minutes>60 || Minutes==60){
     Minutes=Minutes-60;
     Hours=Hours+1;
    }
    
  3. 正しい命名規則、つまりクラス名を使用して大文字で開始し、メソッドと変数は小文字で開始します。

  4. Scanner入力の読み取りが完了したら、最後に を閉じます。

于 2012-11-07T17:47:22.643 に答える
0

ループを使用する代わりに、何周するかを計算できます。

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

注:seconds時間数が変わる可能性があるため、最初に調整を計算する必要があります。

于 2012-11-07T18:00:18.117 に答える