2015-04-22 71 views
-1

我從來沒有做過循環,必須爲一個項目。 以下是我有:無法更改我的循環中的變量值

import java.util.Scanner; 
public class Population 
{ 
    public static void main (String [] args) 
    { 
     Scanner kb = new Scanner (System.in); 
     int dailyPopInc=-1; 
     System.out.print("What is the starting number of organisms? "); 
     int population = kb.nextInt(); 
     if (population>1){System.out.print("What is the daily population increase as a percentage? "); 
      dailyPopInc= kb.nextInt();} 
     else System.out.println("Error"); 
     int daysMultiplied=0; 
     if (dailyPopInc>=0){System.out.print("How many days will they multiply? "); 
      daysMultiplied= kb.nextInt();} 
     int k=0; 
     for (k=1;k<daysMultiplied;k++){ 
      population= population + population*(dailyPopInc/100); 
      System.out.println("The the amount of population on day "+k+" is " + population); 
     } 
    } 
} 

我不斷收到之類的東西 「人口的第1天的量是89」,它只是改變了一天的價值。

人口從未改變。有人可以告訴我我的錯誤嗎?

+1

這與整數除法做。 'dailyPopInc/100'將導致'0',除非'dailyPopInc> = 100',因爲小數部分被丟棄。 – Jyr

+0

您的腳本正在編譯並返回一些內容。我們必須猜測的其他一切,因爲我們不知道它應該做什麼。添加您輸入的值可能會有所幫助,並且您的預期輸出。 – angabriel

回答

0

修改這些行:

double population = kb.nextInt(); 
population= population + population*(dailyPopInc/100.0); 

這是因爲dailyPopInc/100作爲一個整數始終爲0。

+0

如何使輸出成爲整數。你說的剛剛工作了它的小數點 –

+1

'System.out.println(「當天的人口數量+ k +」是「+ Math.round(人口));'' – Jyr