Могу ли я пропустить значение i в цикле for? - PullRequest
0 голосов
/ 26 марта 2019

Я новичок в языке Си.Я использовал вложенный цикл для проверки состояния отдельных элементов в двумерном массиве.По сути, я хочу проверить все элементы, кроме тех, что в 3-м ряду.Это правильно?Будет ли значение i идти от 0 до 5 и пропустить i = 2?Или условие цикла будет выполнено, когда я = 0, остановится и вернет истину?Спасибо!

Я написал

for(i=0; i<6& i!=2;i++){
     for (j=0;i<6;j++){
        if(board[i][j]!='U'){return true;}
     }
}

Ответы [ 2 ]

2 голосов
/ 26 марта 2019

Используйте continue, чтобы начать следующую итерацию:

for(i = 0; i < 6; ++i){
    if(i == 2){
        continue;
    }
    for(j = 0; j < 6; ++j){
        if(board[i][j] != 'U'){
             return true;
        }
    }
}

Это, однако, будет работать только для самого внутреннего цикла, в котором содержится continue.

Редактировать: Эторабочий раствор.Для обсуждения чистого кода и того, стоит ли использовать continue или нет, см. Software Engineering Forum .

1 голос
/ 26 марта 2019

Второе предложение оператора for относится к условию завершения цикла, поэтому вы не можете поместить туда ничего не связанного. Используйте отдельный оператор if внутри тела цикла:

for(i=0; i<6; i++)
{
  if(i != 2)
  {
    /* do stuff */
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...