2013-08-13 4 views
0

Я новичок здесь. Я хотел бы знать, как использовать для цикла с 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

Как вы можете видеть, последнюю цифру от моего имени образа является у и первые 3 цифры является х.

Я хочу использовать что-то вроде:

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

Любое предложение?

+0

Правильный способ выполнения двух тестов в цикле for выглядит так: 'for (int x = 1, int y = 1; x <= 200 && y <= 4; x ++, y ++)', но это выиграло ' т делать то, что вы хотите. Вы должны использовать вложенные циклы, как указывали многие ответы. – SSteve

+0

@ 0x7fffffff У меня возникло соблазн ответить на этот вопрос, сказав, что нужно использовать вложенный цикл 'for'. Кто-нибудь еще это сделал? – CaptJak

+0

Разве это не дубликат вашего предыдущего вопроса? http://stackoverflow.com/questions/18198363/download-multiple-images-on-ios-app – rmaddy

ответ

3

Гораздо четче поставить одну петлю внутри другой:

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

Я бы также предложить более описательные имена чем x и y

+1

В зависимости от имени файла вы можете использовать формат '% 03i% i'. Это даст вам 0011 по 2004 год, а не с 11 по 2004 год. – rmaddy

2
for(x=1; x<=200; x++) 
{ 
    for(y=1; y<=4; y++) 
    { 
     NSString * filename = [NSString stringWithFormat: @"mywebsite/%i%i.png", x, y]; 
    } 
} 
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

Похоже, вы хотите использовать вложенные 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.   
    } 
} 
-1

действительно ли это решит вашу непосредственную проблему или нет, я думал, что я отвечу реальный вопрос, который здесь спрашивают. For loop with two integers.

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

'y' дойдет до 200 с этим кодом. – SSteve

+0

Вы можете сделать это: 'for (int x = 1, y = 1; ...' – rmaddy

1

мне это нужно, потому что у меня есть несколько изображений на моем веб-сервере, со следующими именами:

вы также можете использовать один для цикла и изменить переменную управления.

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 
… 
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 
    } 
} 

Объяснение Этот код в основном говорит, за каждый раз, когда я увеличивается на один (все, вплоть до 200), J будет подсчитывались с 1-4 внутри вложенной петля.