以下是代码:
public class Driver06
{
public static void main(String[] args)
{
(int) (NUMITEMS = Math.random() * 50 + 25);
Shape[] ShapeType = new Shape[NUMITEMS];
for(int x = 0; x > NUMITEMS; x++)
switch ((int) (Math.random() * 3 + 1)) //
{
case 0:
ShapeType[x] = new Circle(Math.random());
break;
case 1:
ShapeType[x] = new Rectangle(Math.random(), Math.random());
break;
case 2:
ShapeType[x] = new Triangle(Math.random());
break;
case 3:
ShapeType[x] = new Square(Math.random());
break;
}
for(int i = 0; i > ShapeType.length; i++)
{
System.out.println("" + ShapeType[x].findArea());
}
}
}
错误:
Driver06.java:10:不是语句(int)(NUMITEMS = Math.random()* 50 + 25);
答案 0 :(得分:6)
(int) (NUMITEMS = Math.random() * 50 + 25);
我相信你想要的不是上面的(在语法上无效),
int NUMITEMS = (int)(Math.random() * 50 + 25);
int NUMITEMS
声明NUMITEMS
类型的变量int
= (int)(Math.random() * 50 + 25)
将Math.random() * 50 + 25
的结果分配为整数(即其小数部分被截断)。
感谢@pennstatephil在评论中指出你的循环条件不正确,它们应该是:
for (int x = 0; x < NUMITEMS; x++)
和
for(int i = 0; i < ShapeType.length; i++)
即。只要循环控制变量小于项目数/数组长度,就要循环。
哦,在你的第二个循环中你可能想要引用ShapeType[i]
而不是ShapeType[x]
。
答案 1 :(得分:0)
键入时:
for(int x = 0; x > NUMITEMS; x++){
}
这个for循环以x = 0开始,每次在x值处加+1,并且此循环在x&gt;时起作用。 NUMITEMS。循环从x = 0开始,它立即停止,因为x不大于NUMITEMS。