基于c的for循环中改变变量值的问题

时间:2021-09-15 07:25:14

不知道何时起, 非常刻意避免在 for 循环体内改变变量值. 似乎是受别人观点影响, 但却并不知晓原因.
可是有时候用其他方法替代却不方便, 自己试了一下, 或许找到了一丝差异.
用这种方法赋值时, 没有出现问题:

复制代码 代码如下:


#include <stdio.h>
int main()
{
 int i;
 for(i=0; i<10; i++)
 {
  i = i+2;
  printf("%d/n", i);
 }
 return 0;
}


但是另外一种赋值方法, 却是不行的.

复制代码 代码如下:


#include <stdio.h>
int main()
{
 int i;
 for(i=0; i<10; i++)
 {
  i = 2;   // 将永远循环下去
  printf("%d/n", i);
 }
 return 0;
}


不知是否只是这个原因, 才有很多提倡不要再 for 循环体内改变变量值的.