for循环有两个整数

时间:2013-08-13 00:16:31

标签: objective-c

我是新来的。我想知道,如何使用 for loop 和2个整数。

让我们说:

for (int  x = 1, int y = 1; x <=200, y <=4; x++, y++)

我需要它,因为我的网络服务器上有一些图像,名称如下:

1501.png,1502.png,1503.png,1504.png

1511.png,1512.png,1513.png,1514.png

如您所见,我的图像名称中的最后一位数字是y,前3位是x。

我想使用类似的东西:

[@"mywebsite/%i%i.png", x , y]

有什么建议吗?

7 个答案:

答案 0 :(得分:4)

你会做这样的事情:(嵌套循环)

for (int x = 1; x <= 200; x++) {
     for (int y = 1; y <=4; y++) {
         //Do your logic here like
         NSString *filename = [NSString stringWithFormat:@"mywebsite/%d/%d.png", x, y];
     }
}

答案 1 :(得分:3)

将一个循环放在另一个循环中更清楚:

for (int x = 1; x <=200; x++) {
    for(int y = 1; y <=4; y++) {
        // [@"mywebsite/%i%i.png", x , y]
    }
}

我还建议使用比x和y更具描述性的名称

答案 2 :(得分:2)

for(x=1; x<=200; x++)
{
    for(y=1; y<=4; y++)
    {
        NSString * filename = [NSString stringWithFormat: @"mywebsite/%i%i.png", x, y];
    }
}

答案 3 :(得分:1)

听起来你想使用嵌套for循环。

我认为这样的事情可以完成你或之后的事情

 for (int i = 10 i <= 200; i++) {
    for (int j = 1; j <=4; j++) {
        //Do something with the i and j value for file name.        
    }
}

答案 4 :(得分:1)

  

我需要它,因为我的网络服务器上有一些图像,名称如下:

你也可以使用一个for循环并改变控制变量。

for(int i = 1; i<2005; ++i){
    if (! (i% 5 == 0)) {
        NSLog(@"%d", i);
    } else {
        i+= 5;
    }
}

输出:

…
1501
1502
1503
1504
1511
1512
1513
1514
1521
1522
1523
1524
…

或更一般:

int COLUMN = 4;
int ROW = 10;
for(int i = 1; i<2000+(COLUMN+1); ++i){
    if (! (i% ROW == (COLUMN+1))) {
        NSLog(@"mywebsite/%04i.png", i);
    } else {
        i+= ROW -(COLUMN+1);
    }
}

输出

…
mywebsite/1501.png
mywebsite/1502.png
mywebsite/1503.png
mywebsite/1504.png
mywebsite/1511.png
mywebsite/1512.png
mywebsite/1513.png
mywebsite/1514.png
mywebsite/1521.png
mywebsite/1522.png
mywebsite/1523.png
mywebsite/1524.png
…

答案 5 :(得分:0)

不可能:如果您按照建议在一个循环中使用了2个整数,则x和y将完全相同。它们都从1开始,每次循环时数到1。你是说x&lt; = 200 OR / AND y&lt; = 4。这一切都没有,因为x = y整个时间。如果我有代表,我会投票给Nick的答案。

您遇到的问题的正确解决方法嵌套循环,正如之前多次提到的那样,但上述答案缺乏解释并只包含代码,如果你不知道如何使用它就没用了。

<强>代码

for(i=1; i<=200; i++)
{
    for(j=1; j<=4; j++)
    {
        //your code here
    }
}

解释:这段代码基本上说,每次我增加1(一直到200),j将从嵌套循环内的1-4计数。

答案 6 :(得分:-1)

这是否能真正解决你的问题,我想我会回答这里提出的真实问题。 For loop with two integers

int x, y;
for (x = 1, y = 1; x <= 200 || y<= 4; x++, y++)