gpt4 book ai didi

java - 循环验证和输出问题

转载 作者:行者123 更新时间:2023-12-01 10:07:06 24 4
gpt4 key购买 nike

所以我一切正常,除了输入所需的输入后,我会得到如下输入:

1   5.0
2 6.0
3 7.0
4 8.0

我不知道我做错了什么,因为根据我输入的增长率(50),它似乎没有以正确的增量增加。也无法让有机体数量根据第二天增加。有什么建议吗?

//Purpose of program to predict population of organisms

import java.util.Scanner;

public class Population {
public static void main(String[] args) {
double growthRate = -1;
int population = 0;
int days = -1;
double popResult = 0;

Scanner keyboard = new Scanner(System.in);

System.out.println("\nEnter the starting number of organisms:");
population = keyboard.nextInt();

while (population < 2) {
System.out.println("\nError!! Please re-enter number of organisms.");
population = keyboard.nextInt();
}

System.out.println("\nEnter rate of growth as percentage:");
growthRate = keyboard.nextInt() / 100;

while (growthRate < 0) {
System.out.println("\nError!! Growth rate must be a positive number. Please re-enter.");
growthRate = keyboard.nextInt();
}

System.out.println("\nEnter number of days organisms will grow:");
days = keyboard.nextInt();

while (days < 0) {
System.out.println("\nError!! Number of days cannot be less than 1. Please re-enter.");
days = keyboard.nextInt();
}

System.out.println("Days" + "\t" + "Organisms");
System.out.println("------------------");

popResult = population;
growthRate = growthRate / 100;

for (int numberOfDays = 1; numberOfDays < days; numberOfDays++) {
System.out.println(numberOfDays + "\t" + popResult);
popResult = (popResult * growthRate) + popResult;

}
}
}

最佳答案

您正在行中以整数格式输入 GrowthRate

growthRate=keyboard.nextInt()/100;

如果它小于 0,那么您将输入不除以 100

growthRate=keyboard.nextInt();

最后你再次将 GrowthRate 除以生长率=生长率/100;

因此,您必须仅在 while 循环之外获取输入GrowthRate=keyboard.nextInt();

修改后的代码

import java.util.Scanner;

public class Population
{
public static void main(String[] args)
{
double growthRate=-1;
int population=0;
int days=-1;
double popResult=0;

Scanner keyboard=new Scanner(System.in);

System.out.println("\nEnter the starting number of organisms:");
population=keyboard.nextInt();

while(population<2)
{
System.out.println("\nError!! Please re-enter number of organisms.");
population=keyboard.nextInt();
}

System.out.println("\nEnter rate of growth as percentage:");
growthRate=keyboard.nextInt();

while(growthRate<0)
{
System.out.println("\nError!! Growth rate must be a positive number. Please re-enter.");
growthRate=keyboard.nextInt();
}

System.out.println("\nEnter number of days organisms will grow:");
days=keyboard.nextInt();

while(days<0)
{
System.out.println("\nError!! Number of days cannot be less than 1. Please re-enter.");
days=keyboard.nextInt();
}

System.out.println("Days" + "\t" + "Organisms");
System.out.println("------------------");

popResult=population;
growthRate=growthRate/100;

for(int numberOfDays=1; numberOfDays<days; numberOfDays++)
{
System.out.println(numberOfDays + "\t" + popResult);
popResult=(popResult * growthRate) + popResult;

}}}

关于java - 循环验证和输出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com