2014-01-08 117 views
0

我想创建一个嵌套的循环,这将允许我显示一些特定的次数,但问题是它只放置一个元素而不是其他的。我如何设置坐标?创建一个嵌套循环

int rows, cols; 
rows = 7; 
cols = 6; 

for (int i=0; i <rows; i++); { 
    for (int j=0; j< cols; j++); 

} 

回答

4

也许是因为你硬编码了圆圈的位置,所以对于所有圈子它都是一样的吗?

canvas.drawCircle(80, 155, 40, white); 

如何计算位置?

int x = i * radius + 10; // or whatever you wanna calculate here... 
int y = j * radius + 10; 
canvas.drawCircle(x, y, 40, white); 
+0

此外内for循环立即被关闭'; ':P – Muel

+0

打我!外循环之后还有一个分号。 – Rafa

0

确保你在更新每个循环周期的圆坐标!现在他们被硬编码。这可以帮助:

int rows, cols; 
rows = 7; 
cols = 6; 
for (int i=0; i <rows; i++); { 
    for (int j=0; j< cols; j++) { 
    canvas.drawCircle(80 + (80*i), 155 + (155*j), 40, white); 
    } 
} 

我只是用相同的值x和y的偏移量,虽然你可能要玩弄他们(80155)找到你要的样子。

0

您的循环doesen't更改圆的位置,因为你只说得出它在80和155 尝试这样的事情

int rows, cols; 
rows = 7; 
cols = 6; 
//initial x and y positions 
float initialX =80; 
float initialY =155; 
int radius = 40; 
for (int i=0; i <rows; i++); { 
    //you need to reset it for each circle 
    float drawX = initialX; 
    for (int j=0; j< cols; j++){ 
     canvas.drawCircle(initialX, initialY, radius, white); 
     //where 10 will be the little space you want between circles 
     drawX+=radius*2+10; 
    } 
    initialY+=radius*2+10; 
}