Превращение цикла в цикл - PullRequest
       38

Превращение цикла в цикл

0 голосов
/ 04 ноября 2019

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

int x = 0;
for (i = 0; i < N; i += 8) {
  for (j = 0; j < M; j += 8) {
    for (k = i; k < i + 8; k++) {
      for (l = j; l < j + 8; l += 8) {
         x = l + k + i + j;
      }
    }
  }
}

А вот цикл while, который я сгенерировал:

int x = 0;
int i = 0;
int j = 0;
int k;
int l;
while (i < N) {
  while (j < M) {
    while (k < i + 8) {
      while (l < j + 8) {
        x = l + k + i + j;
        l += 8
        }
    k++
    l=j
    }
  j+=8
  k=i
  }
i+=8
}

Почему вывод не будет таким же? Что не так с настройкой цикла while, который вызывает разницу с циклом for?

1 Ответ

1 голос
/ 04 ноября 2019

Прежде всего, пожалуйста, поставьте скобки {} в соответствующие позиции. И вы увеличиваете i вместо l во внутреннем цикле while. изменить,

    ...Some Code...
    i += 8

на

    ...Some Code...
    l += 8

Обновление:

В цикле while вы назначаете переменные после выполнения оператора, когда для цикла for инициализация происходит перед выполнениемиз заявления. Пожалуйста, присвойте каждую переменную перед выполнением, а также проверьте, удовлетворяют ли условия по-прежнему.

...