2017-03-03 6 views
-7

whileループがこのタイプの質問にどのように関係しているかはわかりません。プログラムは、ユーザに数日の入力を要求しなければならず、その日数に含まれる年数が返されなければならない。 365歳未満のものはまだ1年とみなされます。 whileループを使用する必要があります。画像の説明。私はちょうど私がwhileループが 質問のこのタイプのために適切であるかはかなりわからない何かwhileループを計算する年数

Program Requirements

import java.util.Scanner; 

public class A2_Q1 { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Scanner keyboard = new Scanner(System.in); 

     System.out.print("Enter a positive number of days n: "); 
     int numberOfDays = keyboard.nextInt(); 
     int numberOfYears = 0; 

     if (numberOfDays > 0 && numberOfDays < 365){ 
      numberOfYears = 1; 
      System.out.printf("Number of years: " + numberOfYears); 
     } 

     else { 

      while(numberOfDays >= 365){ 

       System.out.printf("Number of years: " + numberOfYears); 

      } 
     } 
     System.out.println("Thank you for using Zach's program and goodbye !!"); 

    } 

} 
+4

コードの書式設定にもっと力を入れてください。現時点では読みにくいです。そして、あなたが直面している問題について明確な説明を与えていない - コードを見せても何が起こるのか起こったのかを教えてくれていない。最後に、要件を画像として表示する理由はありません。基本的に単なるテキストであり、質問に含める必要があります。 –

+2

whileループでは、365を引きます。 –

+1

@JohnnyMoppそして、年数を増やすことも考えられます。 ;) –

答えて

0

が欠落し、アイデアを持っていると思います。

あなたのプログラムの指示には、modulo演算子を使用することはできません。そのため、代替手段の1つとして、whileループを使用することができます。次のスニペットを参照してください。

numberOfYears = 1; 
while(numberOfDays >= 365){ 
    numberOfDays = numberOfDays - 365; 
    numberOfYears++; 
} 

System.out.println("Number of years: " + numberOfYears);