2014-01-28 37 views
2

我在每次循環運行時更新總數時遇到問題。 我一直在使用值2,50和5來檢查我的工作。 總數應該是:3,4.5,6.75,10.125,15.1875,但我能得到的只是第一個總數。在Java循環中更新總數

任何幫助非常感謝!謝謝!!

這裏是我的代碼:

import java.util.Scanner; 

public class Population 
{ 

public static void main(String[] args) 
{ 
    int startingOrganisms; 
    int dailyPopulation; 
    int daysMultiply; 
    double dailyTotal = 0; 
    double dailyTotal2 = 0; 
    double dailyTotal3 = 0; 

    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Starting # of Organisms:"); 
    startingOrganisms = keyboard.nextInt(); 

    System.out.println("Daily Population Increase(%):"); 
    dailyPopulation = keyboard.nextInt(); 

    System.out.println("# of Days They'll Multiply:"); 
    daysMultiply = keyboard.nextInt(); 

    for (int i = 1; i<=daysMultiply; i++) 
    { 
     dailyTotal = startingOrganisms*dailyPopulation*.01; 
     dailyTotal2 = startingOrganisms + dailyTotal; 
     System.out.println("Population for day " + i + " = " + dailyTotal2); 
    } 

} 

} 

回答

1

按你的邏輯,它看起來的效果就像你想通過改變startingOrganisms值作爲你循環的循環。

鑑於你的輸入值:2, 50 and 5,其結果是:3, 4.5, 6.75, 10.125, 15.1875,一個粗略的猜測startingOrganisms應分配dailyTotal2

首先改變的值將改變startingOrganisms數據類型。

double startingOrganisms; 

下一步將內改變其價值循環:

for (int i = 1; i <= daysMultiply; i++) { 
      dailyTotal = startingOrganisms * dailyPopulation * .01; 
      dailyTotal2 = startingOrganisms + dailyTotal; 
      startingOrganisms = dailyTotal2; 
      System.out.println("Population for day " + i + " = " + dailyTotal2); 
     } 

或更好,把startingOrganisms爲您dailyTotal2計數器持有的更新值和增量:

for (int i = 1; i <= daysMultiply; i++) { 
      dailyTotal = startingOrganisms * dailyPopulation * .01; 
      startingOrganisms = startingOrganisms + dailyTotal; 
      //startingOrganisms = dailyTotal2 
      System.out.println("Population for day " + i + " = " + startingOrganisms); 
     } 

上述兩種情況的結果都是您所期望的:

Starting # of Organisms: 
2 
Daily Population Increase(%): 
50 
# of Days They'll Multiply: 
5 
Population for day 1 = 3.0 
Population for day 2 = 4.5 
Population for day 3 = 6.75 
Population for day 4 = 10.125 
Population for day 5 = 15.1875 
+0

謝謝!這幫助了很多! :) – user2970463

+0

@ user2970463不客氣 – PopoFibo

2

你只能得到你計算它只有一次的第一共圖大業!

你應該閱讀來自用戶的輸入,並在一個循環計算:

while(daysMultiply != -1){ // when the user wants to quit he'll enter -1, for example 
    daysMultiply = keyboard.nextInt(); 
    dailyTotal = 0; 
    dailyTotal2 = 0; 
    for (int i = 1; i<=daysMultiply; i++) 
    { 
     dailyTotal = startingOrganisms*dailyPopulation*.01; 
     dailyTotal2 = startingOrganisms + dailyTotal; 
     System.out.println("Population for day " + i + " = " + dailyTotal2); 
    } 
} 
0

您每天都是根據原始人口進行計算,而不是以當前人口計算。嘗試調整計算中使用目前的人口十倍的增長因素:

growth = dailyTotal*dailyPopulation*.01; 
dailyTotal dailyTotal + growth; 

或在一行

dailyTotal = dailyTotal + (dailyTotal*dailyPopulation*.01);