c语言中 for(i=0;n;n=n/10,i++) 这个循环的该怎么理解?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
首先要明白for语句的执行顺序
for语句的原型是for(;;)
第一个分号之前作为初始化,只执行一次,在最前面执行。
第二个分号和第一个分号之间是条件判断,每次判断是“真”才会继续进行循环,执行顺序排在第二。
第二个分号之后的地方是循环一次之后最后执行的部分。
上面这句拆开来执行顺序就是:
第一次初始化i
=
0
然后判断n是否为真
真的话就进入循环执行for语句
最后执行
n
=
n/10,i++
然后再判断此时的n是否为真
真的话继续执行for语句,以此类推执行。

for(n=2;n<=100;n++)
{
for(i=2;i
=n)
printf("\t%d",n);
}
1循环语句结束条件,要么是n%i
==0
就break了,要么就不满足i
=n){}
i>n的时候执行{}这里面的否则跳过{}
开始判断
i==n。同理,
if(i==n){}
i!=n的时候就继续跳过{}....这里要注意不能
(i=n)
if(i>n){}
if(i=n){}
是一个赋值,不是一个判断,if()永远是true,然后i的值变成n

和while(n)
n=n/10
是一样的,这段代码应该是判断n是几位数的功能,i是n的位数