0

我是新来的。我想知道,如何使用带有 2 个整数的 for 循环。

比方说:

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]

有什么建议吗?

4

7 回答 7

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];
     }
}
于 2013-08-13T00:20:10.750 回答
3

将一个循环放在另一个循环中要清楚得多:

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

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

于 2013-08-13T00:20:23.147 回答
2
for(x=1; x<=200; x++)
{
    for(y=1; y<=4; y++)
    {
        NSString * filename = [NSString stringWithFormat: @"mywebsite/%i%i.png", x, y];
    }
}
于 2013-08-13T00:19:50.453 回答
2

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

您还可以使用一个 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
…
于 2013-08-13T00:36:06.277 回答
1

听起来您想使用嵌套的 forloops。

我认为这样的事情会完成你所追求的

 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.        
    }
}
于 2013-08-13T00:22:23.873 回答
0

不可能:如果您按照建议在一个循环中使用 2 个整数,则 x 和 y 将等于同一件事。它们都从 1 开始,每次循环进行时都加 1。你是说当 x<=200 OR/AND y<=4 时。由于 x=y 一直以来,这什么也没做。如果我有代表,我会否决尼克的回答。

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

代码

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

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

于 2013-08-13T00:45:11.760 回答
-1

这是否真的解决了您的直接问题,我想我会回答这里提出的真正问题。For loop with two integers.

int x, y;
for (x = 1, y = 1; x <= 200 || y<= 4; x++, y++)
于 2013-08-13T00:25:33.123 回答