投資を計算するために使用されるコードを、それが2倍になり、解決できないように見える無限ループを受け取るまで調べていました。なぜこれが私に無限ループを与えているのか誰かが理解できますか?私は自分自身を通り抜けましたが、問題を見つけることができないようです。言及される「期間」は、利息が複合される1年に何回かです。
double account = 0; //declares the variables to be used
double base = 0;
double interest = 0;
double rate = 0;
double result = 0;
double times = 0;
int years = 0;
int j;
System.out.println("This is a program that calculates interest.");
Scanner kbReader = new Scanner(System.in); //enters in all data
System.out.print("Enter account balance: ");
account = kbReader.nextDouble();
System.out.print("Enter interest rate (as decimal): ");
rate = kbReader.nextDouble();
System.out.println(" " + "Years to double" + " " + "Ending balance");
base = account;
result = account;
for (j=0; j<3; j++){
System.out.print("Enter period: ");
times = kbReader.nextDouble();
while (account < base*2){
interest = account * rate / times;
account = interest + base;
years++;
}
account = (((int)(account * 100))/100.0);
//results
System.out.print(" " + i + " " + account + "\n");
account = result;
}
コードは、3つの「期間」、または入力されたデータが1年に合成される3つの異なる回数(たとえば、年次、月次、日次など)を要求する必要があります。
どうもありがとう!