对于我先前发布的问题,我有一个后续问题。 Link
我不确定发布这些内容的正确礼节,如果这是错误的话,请原谅我。
我开始学习数组,并试图使我的同心圆现在重复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);
}
}
关于java - 同心圆和阵列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29788386/