gpt4 book ai didi

java - 计算人口密度: a beginners guide

转载 作者:行者123 更新时间:2023-12-01 18:18:13 26 4
gpt4 key购买 nike

好吧,我对此还很陌生,我不知道我的代码发生了什么。它看起来是正确的,但是当我尝试运行它时,它给了我除以零的错误?

老师给我的一页上的代码 1:

 public class Country
{
// fields
private String name;
private int population;
private int area; // in square miles

// constructors

// methods
public String getName()
{
return name;
}

public int getPopulation()
{
return population;
}

public int getArea()
{
return area;
}

public void setName(String newName)
{
name = newName;
}

public void setPopulation(int newPopulation)
{
population = newPopulation;
}

public void setArea(int newArea)
{
area = newArea;
}

// population per square mile
public int populationDensity()
{
int density;
density = population / area; // integer division truncates
return density;
}
}

还有我做过的另一件事:

public class A03  
{
public static void main(String[] args)
{
Country country1 = new Country();

String newName = "Macau";
int newPopulation = 453000;
int newArea = 6;
int density = newPopulation / newArea;

country1.setName(newName);
country1.setPopulation(newPopulation);
country1.setArea(newArea);

System.out.printf("Name: " + country1.getName());
System.out.printf("%nPopulation: %,d ", country1.getPopulation());
System.out.printf("%nArea: "+ country1.getArea());
System.out.printf("%nPopulation Density: %,d", country1.populationDensity(), "%n");
System.out.println();
System.out.println();

Country country2 = new Country();
String name1 = "Libya";
int population1 = 5900000;
int area1 = 679358;
int density1 = population1 / area1;

System.out.printf("Name: %s%n", name1);
System.out.printf("Population: %,d%n", population1);
System.out.printf("Area: %,d%n", area1);
System.out.printf("Population Density: %,d%", country2.populationDensity(), "%n");

System.out.println();

Country country3 = new Country();
String name2 = "USA";
int population2 = 298500000;
int area2 = 3539225;
int density2 = population2 / area2;

System.out.printf("Name: %s%n", name2);
System.out.printf("Population: %,d%n", population2);
System.out.printf("Area: %,d%n", area2);
System.out.println();

}
}

有人可以告诉我出了什么问题吗?或者我正在做的事情是错误的。我基本上复制、粘贴和更改我的变量以适应下一个国家的人口密度。

最佳答案

main 中,您没有调用 country2country3 上的任何 setter 方法。您只声明了变量。当实例变量未分配值时,Java 会分配默认值,对于原始数字类型,该值是 0。这解释了为什么会出现被零除错误。

调用 country2country3 的 setter(和 getter)。

关于java - 计算人口密度: a beginners guide,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353832/

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