2015-04-22 5 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

Смежные вопросы