在java中打印特定大小的数组

在java中打印特定大小的数组,java,arrays,Java,Arrays,我正试图打印出一个包含10个对象的数组。但出于某种原因,当我打印出数组时,数组中有15到22个元素。我不明白为什么。有人能给我指一下正确的方向吗 import java.util.Random; public class Main { public static void main( String[] args ) { Shape[] myShapes = new Shape[10]; //Array of 10 shapes Random rand

我正试图打印出一个包含10个对象的数组。但出于某种原因,当我打印出数组时,数组中有15到22个元素。我不明白为什么。有人能给我指一下正确的方向吗

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());
            }
        }
    }
import java.util.Random;
公共班机{
公共静态void main(字符串[]args){
Shape[]myShapes=新形状[10];//由10个形状组成的数组
Random rand=new Random();//随机数生成器
int形状,x1,y1,x2,y2,x3,y3;
双半径;
对于(int i=0;i<10;i++){
shape=rand.nextInt(3);//随机选择shape
开关(形状){
案例0://三角形
x1=兰特·耐克斯汀(101);
y1=兰特·耐克斯汀(101);
x2=兰特·耐克斯汀(101);
y2=兰特·耐克斯汀(101);
x3=兰特·耐克斯汀(101);
y3=兰特·耐克斯汀(101);
myShapes[i]=新三角形(x1,y1,x2,y2,x3,y3);
System.out.println(“三角形:+myShapes[i].area());
案例1://矩形
x1=兰特·耐克斯汀(101);
y1=兰特·耐克斯汀(101);
x2=兰特·耐克斯汀(101);
y2=兰特·耐克斯汀(101);
myShapes[i]=新矩形(x1,y1,x2,y2);
System.out.println(“矩形:+myShapes[i].area());
案例2://圆圈
半径=rand.nextDouble()*100.0;
x1=兰特·耐克斯汀(101);
y1=兰特·耐克斯汀(101);
myShapes[i]=新圆(半径x1,y1);
System.out.println(“圆圈:+myShapes[i].area());
}
}
}

您能为每种情况使用break;

您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case
0
正确,它将放置三个形状并打印三个打印。如果case
1
正确,它将放置两个形状并打印两个打印


如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。

您能为每个案例使用break;

您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case
0
正确,它将放置三个形状并打印三个打印。如果case
1
正确,它将放置两个形状并打印两个打印


如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。

您能为每个案例使用break;

您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case
0
正确,它将放置三个形状并打印三个打印。如果case
1
正确,它将放置两个形状并打印两个打印


如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。

您能为每个案例使用break;

您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case
0
正确,它将放置三个形状并打印三个打印。如果case
1
正确,它将放置两个形状并打印两个打印


如果在每个案例后放置
break
,则每次迭代只放置一个形状并只打印一次。

此代码中不打印数组。您有10次迭代循环,每次迭代打印一行。您能显示您得到的输出吗?您创建了一个大小为10的数组。它不能包含超过10个el否则您将获得ArrayIndexOutOfBoundsException。我认为它不会抛出ArrayIndexOutOfBoundsException异常。但它肯定会打印(System.out.println)考虑到shape的值不总是2,因此超过10个元素不总是2。在这段代码中,您没有打印数组。您有一个10次迭代的循环,并且在每次迭代中打印一行。您能显示您得到的输出吗?您创建了一个大小为10的数组。它不能包含超过10个元素。否则您将得到ArrayIndexOutOfBoundsEx异常。我认为它不会抛出ArrayIndexOutOfBoundsException异常。但它肯定会打印(System.out.println)考虑到shape的值不总是2,因此超过10个元素不总是2。在这段代码中,您没有打印数组。您有一个10次迭代的循环,并且在每次迭代中打印一行。您能显示您得到的输出吗?您创建了一个大小为10的数组。它不能包含超过10个元素。否则您将得到ArrayIndexOutOfBoundsEx异常。我认为它不会抛出ArrayIndexOutOfBoundsException异常。但它肯定会打印(System.out.println)考虑到shape的值不总是2,因此超过10个元素不总是2。在这段代码中,您没有打印数组。您有一个10次迭代的循环,并且在每次迭代中打印一行。您能显示您得到的输出吗?您创建了一个大小为10的数组。它不能包含超过10个元素。否则您将得到ArrayIndexOutOfBoundsEx异常。我不认为它会抛出ArrayIndexOutOfBoundsException异常。但考虑到形状的值并不总是2,它肯定会打印(System.out.println)10个以上的元素。