Я пытаюсь распечатать массив из 10 объектов. По какой-то причине, хотя, когда я распечатываю массив, в массиве есть от 15 до 22 элементов. Я не могу понять, почему. Может ли кто-нибудь указать мне в правильном направлении?Печать массива определенного размера в java
import java.util.Random;
public class Main {
public static void main(String[] args) {
Shape[] myShapes = new Shape[10]; //Array of 10 shapes
Random rand = new Random(); //Random number generator
int shape, x1, y1, x2, y2, x3, y3;
double radius;
for(int i = 0; i < 10; i++) {
shape = rand.nextInt(3); //randomly select shape
switch(shape) {
case 0: //Triangle
x1 = rand.nextInt(101);
y1 = rand.nextInt(101);
x2 = rand.nextInt(101);
y2 = rand.nextInt(101);
x3 = rand.nextInt(101);
y3 = rand.nextInt(101);
myShapes[i] = new Triangle(x1, y1, x2, y2, x3, y3);
System.out.println("Triangle: " + myShapes[i].area());
case 1: //Rectangle
x1 = rand.nextInt(101);
y1 = rand.nextInt(101);
x2 = rand.nextInt(101);
y2 = rand.nextInt(101);
myShapes[i] = new Rectangle(x1, y1, x2, y2);
System.out.println("Rectangle: " + myShapes[i].area());
case 2: //Circle
radius = rand.nextDouble()*100.0;
x1 = rand.nextInt(101);
y1 = rand.nextInt(101);
myShapes[i] = new Circle(radius, x1, y1);
System.out.println("Circle: " + myShapes[i].area());
}
}
}
Вы не печатаете массив в этом коде. У вас есть цикл из 10 итераций, и на каждой итерации вы печатаете одну строку. Можете ли вы показать результат, который у вас есть? – Eran
Вы создали массив размером 10. Он не может содержать более 10 элементов. В противном случае вы получите исключение ArrayIndexOutOfBoundsException. – Udo
Я не думаю, что это вызовет исключение ArrayIndexOutOfBoundsException. Но он определенно напечатает (System.out.println) более 10 элементов, учитывая, что значение формы не всегда равно 2. – Kartic