27.循环结构之for循环
表达式1是一个或多个赋值语句,用来控制变量的初始值。
表达式2是一个关系表达式,它决定什么时候退出循环。
表达式3是循环变量的步进值,定义控制循环变量每循环一次后按什么方式变化。
特别注意:这三部分之间用;分开
使用for语句应该注意:
1.for循环中的“表达式1.2.3.”均可以缺省,但;不能缺省。
2.省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值,如
int i = 1;
for( l i<=10; i++)
{
printf("第%d遍书写: computer\n", i);
3.省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。如:
int i;
for( i=0; i++)
{
printf("第%d遍书写:computer\n", i);
}
4.省略“表达式3(循环变量增量)“,不做其他处理,循环一直执行(死循环)。如:
int i;
for( i=0; ; i++)
{
printf("第%d遍书写 ;computer\n", i);
}
注意:死循环可以使用break解决
5.表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。如:
int sum,num;
num = 0;
for(sum = 0; num <= 10;num ++,sum ++)
{
sum += num;
}
6.表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。如:
int sum,num;
for(sum = 0, num <=3; num ++, sum ++)
{
sum += num;
printf("num=%d,sum=%d\n", num, sum);
}
运行结果:num=0,sum=0
num=1,sum=2
num=2,sum=5
num=3,sum=9
7.表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。
int sum,num;
for(sum = 0, num = 0; num <= 3 && sum<=5 && 1; num ++, sum ++)
{
sum += num;
printf("num=%d,sum=%d\n", num, sum);
}
#include <stdio.h>
int main()
{
int num, sd, td, hd;
for(num=100;num<1000;num++)
{
hd =num / 100;
td =(num % 100) / 10;
sd =num % 10;
if(num == hd*hd*hd+td*td*td+sd*sd*sd)
{
printf("水仙花数字: %d\n", num);
}
}
reture 0;
}
水仙花数字: 153
水仙花数字:370
水仙花数字:371
水仙花数字:407