for循环

C语言自学之for循环

Dome1:

              体验一下for循环,实现一个10以内的数之和的小程序。
              运行结果为: 10以内数的和为:55

 1 #include<stdio.h>
 2  
 3 int main()
 4 {
 5     // 定义变量sum, num
 6     int sum,num;
 7     sum= 0;
 8     for(num = 0;num<=10 ; num++ )//for循环条件与num的变化值,注()后面不要加;
 9     {
10         sum += num;//计算每次数字之间的和sum(sum=sum+num)
11     }
12     printf("10以内数的和为:%d",sum);
13     return 0;
14 }

for(表达式1;表达式2;表达式3)
    {
        执行代码模块
    }
    它的执行过程如下:

    第一步:执行表达式1,对循环变量做初始化;

    第二步:判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;
    若其值为假(0),则结束循环;

    第三步:执行表达式3;

    第四步:执行for循环中执行代码块后执行第二步;

    第五步:循环结束,程序继续向下执行。

Dome2:

             输出所有水仙花数字。
             所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,
             如:153就是一个水仙花数,153=1*1*1+5*5*5+3*3*3。
             运行结果   水仙花数字:153    370   371   407

 1 #include<stdio.h>
 2  
 3 int main()
 4 {
 5     //定义三位数num,个位数sd,十位数td,百位数hd
 6     int num, sd, td, hd;
 7     //循环所有三位数
 8     for( num=100 ; num<1000   ;  num++  )
 9     {
10         //获取三位数字num百位上的数字
11         hd = num/100;//100/100=1
12         //获取三位数字num十位上的数字
13         td =(num/10)%10  ;//100/10=10;10%10=10/10....0
14         //获取三位数字num个位上的数字
15         sd = num%10        ;//100%10=100/10...0
16         //水仙花数的条件是什么?
17         //还需要深入了解,并不是很懂
18         if(num==hd*hd*hd+td*td*td+sd*sd*sd )//分支结构,当表达式成真时,输出执行代码块。
19         {
20             printf("水仙花数字:%d\n", num);
21         }
22     }
23     return 0;
24 }

1、for循环中的“表达式1、2、3”均可可以缺省,但分号(;)不能缺省。
2、省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。
3、省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)
4、省略“表达式3(循环变量增量)”,不做其他处理,循环一直执行(死循环)
注:死循环可以使用后面即将讲到的break解决

5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
6、表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。
7、表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。
8、各表达式中的变量一定要在for循环之前定义。

posted @ 2020-12-11 18:07  伍悦匿匿  阅读(238)  评论(0编辑  收藏  举报