c语言循环语句之for
在目前的面向对象的语言中c++,java,c#都能发现c语言中的for循环的影子。
for的一般形式:
for(初始化语句;循环控制;关系表达式)
语句或者语句块;
初始化语句:一般是赋值语句,为循环变量赋初始值。
循环控制:确定如何退出循环。
关系表达式:每次重复循环时候怎样修改变量。
例如:在屏幕中输出1-10
int main(void)
{
int x;
for(x=1; x <= 10; x++) printf("%d ", x);
getch();
return 0;
}
首先x赋值为1,然后和10比较,小于10。然后执行printf语句,然后x加1,直到x大于
10,退出循环。
程序执行结果:
1 2 3 4 5 6 7 8 9 10
嵌套for循环例如打印乘法表:
int main(void)
{
int i,j;
for(i=1;i<=9;i++)
{
for (j=1;j<=i;j++)
{
printf("%d*%d=%d ",j,i,i*j);
}
printf("\n") ;
}
getch();
return 0;
}
程序执行结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for的循环的其它形式
1、通过,操作符用于多变量循环例如:
int main(void)
{
int i,j;
for(i=0,j=50;j-i>=40;i++,j--)
{
printf("j-i=%d\n",j-i);
}
getch();
return 0;
}
程序运行结果:
j-i=50
j-i=48
j-i=46
j-i=44
j-i=42
j-i=40
2、for循环的三个部分可以是任何有效的c表达式。例如:由三个函数组成for语句
int incr(void);
int con(void);
int init(void);
void fun1(int x);
int main(void)
{
int t;
for(init();t=con();incr())
{
fun1(t);
}
return 0;
}
int init(void)
{
printf("Enter a number:\n ");
return 0;
}
int con(void)
{
int y;
scanf("%d",&y);
return y;
}
int incr(void)
{
printf("exit input 0\n");
return 0;
}
void fun1(int x)
{
printf("t is %d\n",x);
}
比如输入5,然后输入3,程序输出:
Enter a number:
5
t is 5
exit input 0
3
t is 3
exit input 0
直到输入0,循环结束程序退出。
3、循环定义的部分可以省略,全部省略就是无限循环,上篇文章的菜单形式就是无限
循环的例子。
例如:
int main(void)
{
char s;
for(;;)
{
printf("input a char\n");
s=getchar();
printf("s is %c\n",s);
if(s=='q') break;
}
}
当输入的字符不是q的时候,输出字符,当输入的是q,结束循环,退出程序。
4、没有循环体的for循环
此类一般是应用在延时还有一些其它的方面。