#include <stdio.h>
int i;
int buf[20];
void main(){
int x = 3;
for(i = 6; i < 12; i+2){
buf[i] = 5;
printf("print1 : %d \n", i);
buf[i+1] = 5;
printf("print 2 :%d \n", i);
}
for(i = 6; i < 12; i++){
printf("%d\n", buf[i]);
}
}
此代码进入无限循环并仅打印 打印1:6打印2:6。 为什么呢?
答案 0 :(得分:5)
因为你不修改i
。
将for(i = 6; i < 12; i+2)
更改为:
for(i = 6; i < 12; i+=2)
^^
答案 1 :(得分:2)
您不会将值存回i
这里for(i = 6; i < 12; i+2)
执行此操作
for(i = 6; i < 12; i=i+2)
答案 2 :(得分:1)
问题是i + 2
是一个表达式,它不会修改用于循环终止条件的变量i
。只需将其更改为i += 2
即可将i递增2。