我在学校有这个作业,我必须使用JOptionPane
来计算不同形状的区域,但是当我使用JOptionPane.showMessageDialog
时,它会变成红色,错误代码会显示{{1} }无法转换为void
。有人可以帮我弄清楚如何使用int
吗?
JOptionPane.showMessageDialog
答案 0 :(得分:0)
您的问题与JOptionPane
无关,与您的area*
方法无关
首先,您将所有方法声明为void ...
public static void areaTriangle(int base, int height) {
System.out.println(0.5 * base * height);
}
public static void areaCircle(int radius, double area) {
area = Math.PI * (radius * radius);
System.out.println(area);
}
public static void areaRectangle(int length, int width) {
System.out.println(length * width);
}
但是当你调用它们时,你会尝试将一个返回结果分配给一个变量......
int areaT = areaTriangle(base, height);
//...
int areaC = areaCircle(radius, area);
//...
int areaR = areaRectangle(length, width);
这根本没有意义。
根据您的目标,您需要更改area*
方法以返回某种值......
public static double areaTriangle(int base, int height) {
return 0.5 * base * height;
}
public static double areaCircle(int radius, double area) {
return Math.PI * (radius * radius);
}
public static int areaRectangle(int length, int width) {
return length * width;
}
然后您可以将方法的返回值分配给某些变量...
double areaT = areaTriangle(base, height);
//...
double areaC = areaCircle(radius, area);
//...
int areaR = areaRectangle(length, width);