2014-10-05 5 views
0

У меня проблема с моим кодом для школы. Я пытаюсь изменить двойной «original_amount», чтобы цикл while мог обновлять информацию и печатать ее снова и снова.Изменить значение double in a while loop

Он должен напечатать это от порога $ 1000, тем меньше процентная ставка 0,9%, тем больше процентная ставка 1,5%, вы инвестируете $ 990, и вы хотите, чтобы проследить эту сумму в течение 3-х лет

Report on John Johnson's saving account: 
Original amount    990.00 

Year 1: 
effective interest rate  0.9% 
amount gained     8.91 
amount at the end of Year 998.91 

Year 2: 
effective interest rate  0.9% 
amount gained     8.99 
amount at the end of Year 1007.90 

Year 3: 
effective interest rate  1.5% 
amount gained     15.12 
amount at the end of Year 1023.02 

Thanks for using our bank! 

Это мой код:

{ 
Scanner input=new Scanner(System.in); 
System.out.println("Enter your name"); 
String name=input.nextLine(); 
System.out.println("Enter your bank's threshold"); 
int threshold=input.nextInt(); 
System.out.println("Enter the smaller interest"); 
double small_interest=input.nextDouble(); 
System.out.println("Enter tht larger interest"); 
double large_interest=input.nextDouble(); 
System.out.println("How much do you want to deposit?"); 
original_amount=input.nextDouble(); 
System.out.println("How many years do you want the program to trace?"); 
int trace=input.nextInt(); 
double effective_interest=0; 
if (original_amount>=threshold){ 
effective_interest=(large_interest);} 
else if (original_amount<threshold){ 
effective_interest=(small_interest);} 
double amount_gained=((original_amount * (effective_interest/100))); 
double yearly_amount=original_amount+amount_gained; 
    int x=1; 
    int year=1; 
    System.out.println("Report on "+name+"'s savings account :"); 
    System.out.println("Original Amount "+ original_amount); 
    System.out.println(""); 
    while (x<=trace) 
    { 
     System.out.println("Year"+year+":"); 
     System.out.println("Effective interest rate "+effective_interest+"%"); 
     System.out.println("Amount gained "+amount_gained); 
     System.out.println("Amount at the end of the year "+(yearly_amount)); 
     System.out.println(""); 
     x++; 
     year++; 
    } 
    original_amount+=amount_gained; 
    } 
} 

ответ

1

для каждой итерации цикла вам нужно выполнить вычисления, необходимые для обновления информации. сейчас вы только печатаете, обновляется только переменный год. попробуйте поместить некоторые вычисления внутри цикла while.

обновление
original_amount + = amount_gained; не находится внутри цикла while. попробуйте поместить его туда.

while (x<=trace) 
    { 
     System.out.println("Year"+year+":"); 
     System.out.println("Effective interest rate "+effective_interest+"%"); 
     System.out.println("Amount gained "+amount_gained); 
     System.out.println("Amount at the end of the year "+(yearly_amount)); 
     System.out.println(""); 
     original_amount+=amount_gained; 
     x++; 
     year++; 
    } 
+0

Если я не делаю что-то не так, когда я ставлю «original_amount + = amount_gained;» внутри цикла while ничего не происходит –

+0

см. мое обновление и посмотреть, помогает ли он – pamps

+0

То, что я пробовал, прежде чем он просто распечатает то же самое 3 раза вместо обновления оригинала_amount –

1

также хотел указать, что наличие как х, так и года не является необходимым, поскольку они делают то же самое.

+0

да, я согласен с вами. – pamps

+0

На самом деле это не замечало, но я предполагаю, что истина с использованием обоих не нужна –