Цикл логики Objective-C - PullRequest
       4

Цикл логики Objective-C

4 голосов
/ 09 января 2011

Я действительно новичок в программировании на Objective-C, мой опыт работы с labview, который является графическим языком программирования, я немного работал с Visual Basic и HTML / CSS. Я пытаюсь выяснить логику для создания массива данных для шаблона ниже. Позже мне понадобится шаблон для извлечения данных из двух других массивов в определенном порядке.

Я могу сделать это, сославшись на a = 1, b = 2, c = 3 и т. Д., А затем создав массив с a, b, c, но я хочу использовать цикл, чтобы у меня не было 8 ссылок над массив. Эти ссылки будут использоваться для генерации данных другого поколения, поэтому, если я не смогу помочь разобраться в логике, я на самом деле получу 72 ссылки над массивом.

// Это первый, который дает шаблон

0 0 0 0 (и т. Д.) // 1 1 1 1 // 2 2 2 2

NSMutableArray * expSecondRef_one = [NSMutableArray array];

int a1 = 0;
while (a1 < 9) {
    int a2 = 0;
        while (a2 < 8) {
            NSNumber * a3 = [NSNumber numberWithInt:a1];
            [expSecondRef_one addObject:a3];
            a2++;
        }
    a1++;   
}

// Это второй, на который я спотыкаюсь, я ищу образец

1 2 3 4 5 6 7 8 //
0 2 3 4 5 6 7 8 //
0 1 3 4 5 6 7 8 //
0 1 2 4 5 6 7 8 // etc to -> // 0 1 2 3 4 5 6 7

Если вы запускаете его в строке, то каждое 9-е число равно -1, но я не знаю, как это сделать по шаблону из 8.

Заранее спасибо!

Graham

Ответы [ 3 ]

2 голосов
/ 09 января 2011

Я думаю, вы ищете что-то вроде:

for(int i = 0; i < 9; ++i) {
  for (int j = 0; j < 8; ++j) {
    if (j < i) {
      //Insert j into array
    }
    else {
      //Insert j + 1 into array
    }
  }
}

Я пропустил код, чтобы фактически вставить числа в массив.

Мне не совсем понятно, как вы используете этот массив, но если это просто порядок индексов для доступа к данным из другой группы массивов, вы можете пропустить первый набор массивов и просто использовать этот цикл для доступа к вашим данным позже.

- изменить -

Если я вас правильно понимаю, вы хотите сравнить каждый индекс в массиве из 9 чисел с любым другим индексом, а затем сохранить результаты в массиве. Если это так, вы можете просто сделать что-то вроде этого:

for (int i = 0; i < 9; ++i) {
  for (j = 0; j < 9; ++j) {
    if (j != i) {
      //Compare object at array index i with object at array index j
    }
  }
}
0 голосов
/ 12 июля 2011
NSMutableArray *a=[[NSMutableArray alloc]init];


    for(int i=0;i<8;i++){

        NSMutableString *s=[[NSMutableString alloc]init];

        for(int j=0;j<8;j++){

            if(i!=j){
                [s appendString:[NSString stringWithFormat:@"%i",j]];
            }

        }

        [a addObject:s];

    }

    NSLog(@"%@",a);  

}

вывод:

1234567,
0234567,
0134567,
0124567,
0123567,
0123467,
0123457,
0123456
0 голосов
/ 10 января 2011

Этот цикл отлично работает на мета-уровне для того, что я пытался сделать. Массив, который я создавал, должен был ссылаться на исходный массив (9 ячеек). Используя созданный вами алгоритм, я исключил их и могу ссылаться на исходный массив точно так, как я хотел.

Большое спасибо.

Приветствия

Graham

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...