Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:创建随机大小的数组,任务是打印每个项目(不同的形状),最后一个元素不';无法完全打印_Java_Arrays_Driver_Abstract - Fatal编程技术网

Java:创建随机大小的数组,任务是打印每个项目(不同的形状),最后一个元素不';无法完全打印

Java:创建随机大小的数组,任务是打印每个项目(不同的形状),最后一个元素不';无法完全打印,java,arrays,driver,abstract,Java,Arrays,Driver,Abstract,这是我的司机 public class ShapeDriver { public static void main(String[] args) { // // for (int i= 0; i < arr.length;i++) // { // arr[i]= ranShape(); // } Rectangle rect = new Rectangle(10, 10); C

这是我的司机

public class ShapeDriver
{
   public static void main(String[] args)
   {
   //       
   //       for (int i= 0; i < arr.length;i++)
   //       {
   //       arr[i]= ranShape();
   //       }

  Rectangle rect = new Rectangle(10, 10);
  Circle circ = new Circle(6.7);
  rightTriangle riTri = new rightTriangle(9, 12.3);
  Square sqa = new Square(2);
 //random array 20-50  
  int roll= 0;
  int roll2= 0;
  int o= 0;
  int p= 0;
  int rectCount= 1;
  int squCount= 1;
  int circCount= 1;
  int triCount= 1;

  roll= (int)(Math.random()*50) + 20;  
  System.out.println(roll); 
  Shape[] arr = new Shape[roll];
  for (int l= 0; l < roll; l++)
  {          
     roll2= (int)(Math.random()*4) + 1;
     o= (int)(Math.random()*100) + 10;   
     p= (int)(Math.random()*100) + 1;        
     if (roll2 == 1)
     {
        arr[l]= new Rectangle(o, p);
       //  arr[l].getArea();
       //  arr[l].getPerimeter();
        arr[l].toString();

        if (l < roll)
        {             
           System.out.println("Rectangle " + rectCount + " stats are: ");
        }
        rectCount++;
     }
     if (roll2 == 2)
     {
        arr[l]= new Square(o);
     //             arr[l].getArea();
     //             arr[l].getPerimeter();
        arr[l].toString();

        if (l < roll)
        {            
           System.out.println("Square " + squCount + " stats are: ");
        }
        squCount++;
     }
     if (roll2 == 3)
     {
        arr[l]= new rightTriangle(o, p);
     //             arr[l].getArea();
     //             arr[l].getPerimeter();
        arr[l].toString();

        if (l < roll)
        {
           System.out.println("Right triangle " + triCount + " stats are: ");
        }
        triCount++;
     }
     if (roll2 == 4)
     {
        arr[l]= new Circle(p);
        arr[l].toString();
     //             arr[l].getArea();
     //             arr[l].getPerimeter();
        if (l < roll)
        {            
           System.out.println("Circle " + circCount + " stats are: ");
        }
        circCount++;
     }      
  }   
   }
所以我的输出很好-除了最后一个元素,例如,我有

[许多形状和面积/周长]

直角三角形的14个属性是:

班级圆圈面积为:30790.74959783356

类圆的周长为:622.0353454107791

第18圈统计数据包括:


这就是它停止的地方。没有错误消息,只是最后一个元素的一部分,没有实际打印周长或面积(使用getArea/GetPermiture或toString访问)

您必须颠倒顺序

  for (int l= 0; l < roll; l++)
  {          
     roll2= (int)(Math.random()*4) + 1;
     o= (int)(Math.random()*100) + 10;   
     p= (int)(Math.random()*100) + 1;        
     if (roll2 == 1)
     {
        if (l < roll)
        {             
           arr[l]= new Rectangle(o, p);
           System.out.println("Rectangle " + rectCount + " stats are: ");
           arr[l].toString();
           rectCount++;
        }
     }
     if (roll2 == 2)
     {    
        if (l < roll)
        {            
           arr[l]= new Square(o);
           System.out.println("Square " + squCount + " stats are: ");
           arr[l].toString();
           squCount++;
        }
     }
     if (roll2 == 3)
     {    
        if (l < roll)
        {
           arr[l]= new rightTriangle(o, p);
           System.out.println("Right triangle " + triCount + " stats are: ");
           arr[l].toString();
           triCount++;
        }
     }
     if (roll2 == 4)
     {
        if (l < roll)
        {            
           arr[l]= new Circle(p);
           System.out.println("Circle " + circCount + " stats are: ");
           arr[l].toString();
           circCount++;
        }
     }      
  } 
for(int l=0;l
  for (int l= 0; l < roll; l++)
  {          
     roll2= (int)(Math.random()*4) + 1;
     o= (int)(Math.random()*100) + 10;   
     p= (int)(Math.random()*100) + 1;        
     if (roll2 == 1)
     {
        if (l < roll)
        {             
           arr[l]= new Rectangle(o, p);
           System.out.println("Rectangle " + rectCount + " stats are: ");
           arr[l].toString();
           rectCount++;
        }
     }
     if (roll2 == 2)
     {    
        if (l < roll)
        {            
           arr[l]= new Square(o);
           System.out.println("Square " + squCount + " stats are: ");
           arr[l].toString();
           squCount++;
        }
     }
     if (roll2 == 3)
     {    
        if (l < roll)
        {
           arr[l]= new rightTriangle(o, p);
           System.out.println("Right triangle " + triCount + " stats are: ");
           arr[l].toString();
           triCount++;
        }
     }
     if (roll2 == 4)
     {
        if (l < roll)
        {            
           arr[l]= new Circle(p);
           System.out.println("Circle " + circCount + " stats are: ");
           arr[l].toString();
           circCount++;
        }
     }      
  }