将For循环转换为While循环

时间:2019-11-04 04:01:27

标签: for-loop while-loop

出于实验目的,我试图将这个特定的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 个答案:

答案 0 :(得分:1)

首先,请将括号{}放在适当的位置。在最里面的while循环中,您将递增i而不是l。变化

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

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

更新:

在while循环中,您在执行语句后分配变量,而对于for循环,初始化是在执行语句之前进行的。请在执行之前分配每个变量,并检查条件是否仍然满足。