【发布时间】:2022-01-31 03:50:26
【问题描述】:
我正在尝试基于这个 UML 构建一个 Java 程序: UML of Polygon Class
但我在此过程中遇到了一些小问题。这是我的基本代码:
import java.util.Scanner;
public class Polygon {
private int[] side;
private double perimeter;
public double addSide(double length[]) {
int i = 0;
double perimeter = 0;
while(length[i] > 0){
perimeter += (double)length[i];
i++;
}
return perimeter;
}
public int[] getSides() {return side;}
public double getPerimeter() {return perimeter;}
public static void main(String[] args) {
Polygon polygon=new Polygon();
polygon.side = new int[99];
int i=0;
do{
System.out.print("Side length(0 when done): ");
Scanner in = new Scanner(System.in);
polygon.side[i] = in.nextInt();
i++;
}while(polygon.side[i]>0);
//polygon.perimeter = addSide((double)polygon.side);
System.out.println("Perimeter of " + i + "-sided polygon: " + polygon.getPerimeter());
}
}
有几个问题。
-
我让它编译但是当它接受第一面[0]时,它立即停止并给我周界。即使条件尚未满足,也退出循环。所以我的while循环有问题。我希望它继续接受 side[] 数组中的值,直到输入非正值。
-
UML 还要求我对 addSide 方法使用双参数类型。我试图把它放在争论中,并尝试了其他一些不同的事情,但没有成功。如何将一个 int 数组转换为一个双数组以进行周长计算,根据要求,该数组必须是双倍的。
-
如果我遇到其他问题,我不会感到惊讶,因为我是 Java 新手,所以请随时向我指出,或者如果您有更好的方法来解决这个问题,我很想了解您的想法。
感谢任何建议!
【问题讨论】: