在这个代码中为什么要先定义一个a使a=i之后,代码才能继续执行,不定义却执行不了,为什么while中一定要是a而不是i

#include<stdio.h>
int main()
{
int j=0,i,m,a;
for(i=10000;i<=99999;i++)
{
a=i;
while(a)
{
m=a%10;
if(m==4)
break;
a=a/10;
}
if(m!=4)
j++;
}
printf("10000~99999中不包含4的个数为:%d\n",j);
return 0;
}

i 是外循环的循环因子,a 是内循环的因子,两个循环不能同一个循环因子,会造成死循环。

a如果不初始化是一个随机值
while中如果是i就会造成死循环 i不可能大于99999从而无法退出for循环

i的数值"从10000到99999后跳出循环"是循环条件,负责控制循环的次数.
而a负责获取每一论"+1"循环后,“i”这轮循环的值,所以要写 "a=i" 来获取值,再进行计算和判断。