在C语言里面,循环语句有好多种,比如for语句,do...while,while。在我们的日常使用中,for语句是使用的最多的。而在for语句中,最应该注意的就是取值的问题。
1.
for(a=1;a<9;a++)
这只有一个for,比较好理解。a=1,小于9,然后执行下面的循环体,执行完循环体之后再执行a++,注意是执行完循环体之后再执行a++。这样循环,直到a=9,跳出循环。
2.
下面说一下for循环的嵌套,在这里面取值的问题。这里拿九九乘法表来举例:
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
第一个for,i=1,小于等于9,进入下一个for循环j=1,小于等于i=1,然后执行printf语句,打印出乘法。直到j<=i不符合时,执行第一个for里面的i++。
然后i=2,小于等于9,进入嵌套的for语句,此时应注意,进入嵌套的for语句之前,j的值为2,进入嵌套的for语句之后,因为有j=1,所以j重新赋值,j又等于1.一直循环,直到j=3,不符合j<=i=2,跳出嵌套的for语句,然后在执行第一个for语句的i++。后面的循环就不在赘述了。应当注意的是,每次开始执行嵌套的for语句时,j都是1,然后循环。
3.
关于for语句的使用,还应当注意的是大括号的使用。例如:
int i,j,sum=0;
for(i=0;i<101;i++)
{
sum=sum+i;
printf(“%5d”,sum);
}
在输出之后,你会得到101个数字,但是如果你没有用大括号把for循环里的两个语句括起来的话,最后打印出来的只有5050这一个数字,因为for语句的循环只执行到了“sum=sum+i”这个语句,没有执行printf语句。总的来说,不加大括号的话,for语句的循环只会循环跟在for语句后面的那一个语句。关于大括号的使用,在if语句里也是类似的道理。
4.
关于for语句分号的使用。for后面的括号里有三个表达式,但for语句的特点是,这三个表达式你都可以省略,但这没啥意义。
但是,当你省略第一个表达式时,分号不能丢,如:
i=1;
for(;i<10;i++)
这样写才是合法的。总之,括号里的表达式可以省,但分号不能省,如:
i=1;
for(;;)
printf(“%d”,i);
这样是合法的,但是这没啥意义。
然后是for后面的括号的末尾不能加分号。