在java中打印特定大小的数组
我正试图打印出一个包含10个对象的数组。但出于某种原因,当我打印出数组时,数组中有15到22个元素。我不明白为什么。有人能给我指一下正确的方向吗在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
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个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case0
正确,它将放置三个形状并打印三个打印。如果case1
正确,它将放置两个形状并打印两个打印
如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。您能为每个案例使用break;吗
您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case0
正确,它将放置三个形状并打印三个打印。如果case1
正确,它将放置两个形状并打印两个打印
如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。您能为每个案例使用break;吗
您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case0
正确,它将放置三个形状并打印三个打印。如果case1
正确,它将放置两个形状并打印两个打印
如果您在每个案例之后放置
break
,那么在每次迭代中,它只放置一个形状并只打印一次。您能为每个案例使用break;吗
您的数组实际上有10个元素。但它在每个元素中放置内容最多三次,因为控制在不同的情况下继续进行。因此,如果case0
正确,它将放置三个形状并打印三个打印。如果case1
正确,它将放置两个形状并打印两个打印
如果在每个案例后放置
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个以上的元素。