同心圆和阵列

Concentric Circles and Arrays

我有一个关于我之前发布的问题的跟进问题。

我不确定发这些帖子的礼节是否正确,如果有误请见谅。

我开始学习数组,并试图让我的同心圆现在重复 10 次(10 个不同的圆,都有 6 个环)。

到目前为止,这是我的代码:

public class E4 {



    public static void main(String[] args) 
        throws FileNotFoundException {
        Scanner console = new Scanner(new File("Practice27.txt"));

        int panelX = 400, panelY = 400;
        DrawingPanel panel = new DrawingPanel(panelX, panelY);
        panel.setBackground(Color.WHITE);
        Graphics g = panel.getGraphics();
        Random r = new Random();
        int xCenter=r.nextInt(400);
        int yCenter=r.nextInt(400);

        int [][] diameters = new int[6][10];

      for(int i=0;i<diameters.length;i++){
          for(int j=0;j<diameters.length;j++){
          diameters[i][j]=console.nextInt();
          g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
            g.fillOval(xCenter-diameters[i][j]/2, yCenter-diameters[i][j]/2, diameters[i][j], diameters[i][j]);

        }

    }

}

}

到目前为止我尝试过的是尝试创建一个嵌套的 for 循环,该循环将重复我原来的 for 循环 10 次,但没有成功。然后我尝试使用多维数组(我还不确定它们是如何工作的,所以我的语法可能完全错误)

我觉得解决方案是我最初尝试过的(嵌套循环):

for(int i=0;i<diameters.length;i++){
            for(int j=0;j<=10;j++){
                diameters[i]=console.nextInt();
                g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
                g.fillOval(xCenter-diameters[i]/2, yCenter-diameters[i]/2, diameters[i], diameters[i]);

但这只给我留下了一个同心圆。至少我走在正确的轨道上吗?再次感谢!

其实你需要这样的东西。您只需要一组直径,并为每个直径创建 10 个圆

  int [] diameters = new int[6];

  for(int i=0;i<diameters.length;i++){
      diameters[i]=console.nextInt();
      for(int j=0;j<30;j+=3){
          g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
          g.fillOval(xCenter-diameters[i]/2-j, yCenter-diameters[i]/2-j, diameters[i]+j, diameters[i]+j);
      }
    }