出于实验目的,我试图将这个特定的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循环有所不同?
答案 0 :(得分:1)
首先,请将括号{}
放在适当的位置。在最里面的while循环中,您将递增i
而不是l
。变化
...Some Code...
i += 8
到
...Some Code...
l += 8
更新:
在while循环中,您在执行语句后分配变量,而对于for循环,初始化是在执行语句之前进行的。请在执行之前分配每个变量,并检查条件是否仍然满足。