代码之家  ›  专栏  ›  技术社区  ›  Cory

整数应[重复]时不增加

  •  -1
  • Cory  · 技术社区  · 6 年前

    编写一个程序来预测生物种群的大小。程序应询问 对于生物的起始数量,其日均种群增长(以百分比表示), 它们将成倍增长的天数。例如,一个总体可能从两个开始 生物的平均日增长率为50%,并允许在 七天。程序应该使用循环来显示每天的人口规模。 输入验证:对于人口的起始大小,不接受小于2的数字。做 不接受日均人口增长的负数。不接受数字 它们将相乘的天数小于1。

    我的问题是,每天都没有增加。 我的示例输入是100个生物体,增加50%,3天

    我的输出是 第1天:100 第2天:100 第3天:100

    import java.util.Scanner;
    
     public class Population {
    
        public static void main(String args[]) {
               Scanner scanner = new Scanner( System.in );
    
            System.out.println("Please input the number of organisms");
              String inputOrganisms = scanner.nextLine();
            int numOfOrganisms = Integer.parseInt(inputOrganisms);
    
              System.out.println("Please input the organisms daily population 
      increase (as a percent)");
              String inputPopIncr = scanner.nextLine();
            double popIncrease = Integer.parseInt(inputPopIncr) /100;
    
    
            System.out.println("Please input the number of days the organisms will multiply");
              String inputNumOfDays = scanner.nextLine();
            int numOfDays = Integer.parseInt(inputNumOfDays);
    
           for (int i = 1; i < numOfDays+1; i++) {
               numOfOrganisms = numOfOrganisms += (numOfOrganisms *= popIncrease);
               System.out.println("Day " + i + ": " + numOfOrganisms);
           } 
    
        }
    
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jacob B.    6 年前

    您的问题:

    在for循环中,您应该

    numOfOrganisms += numOfOrganisms * popIncrease;
    

    这背后的原因是,您需要将人口增长添加到现有的数字上。

    您所做的操作会导致错误,因为您只需要在语法行中有一个等于。未读取第二个等于(+=),因为它无效。

    干杯