5.零基础学C语言——3种必学必会的循环结构

循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。

另外,循环结构的三个要素:循环变量、循环体和循环终止条件,循环结构在程序框图中是利用判断框来表示,判断框内写上条件,两个出口分别对应着条件成立和条件不成立时所执行的不同指令,其中一个要指向循环体,然后再从循环体回到判断框的入口处.

 

1、while循环

while 循先判断表达式,后执行循环体。满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while语句的一般表达式为:while(表达式){循环体}。

2、do-while循环

do...while 循环是 while 循环的变体。在检查while()条件是否为真之前,该循环首先会执行一次do{}之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复do...while这个循环,直至while()为假。

两个循环不同之处:while循环是先判断满足后执行,do-while是先执行一次后在判断

综合例子:水仙花数​​​​​​

#include<Stdio.h>int main(void) {// n=3   153  1^3  5^3   3^3     int n;    scanf("%d", &n);       int number=1;    int t = 1;    int i;      while (t < n) {        number *= 10;        t++;  }        i = number;    while (number < i * 10) {//遍历100-1000的数字        int j = number;        int sum = 0;                do {            int d = j % 10;                        j /= 10;            int b = 1;            int c = 0;            while (c < t){   b *= d;     c++;    }            sum += b;        } while (j > 0);        if (number == sum) {            printf("%d ", sum);        }    
    number++;    }   
 return 0;}

3、for循环

for(初始化动作;条件;每轮做的动作){  (循环体) } 

其中 的每一个表达式都是可以省略的,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。

例子:白鸡百钱

#include<stdio.h>int main(void) {    int x, y, z;    int sum = 0;    for (x = 0; x < 20; x++) {        for (y = 0; y < 33; y++) {            z = 100 - x - y;   
 if ((x * 5 + y * 3 + z / 3.0) == 100 && x > 0 && y > 0 && z > 0) 
     {          printf("%d %d %d\n", x, y, z);                }     
   }  
  }  
  return 0;
}
//结果://4 18 78//8 11 81//12 4 84

4、 goto 循环

goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。如:  goto out;      out:

goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能,但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难

例子:输入-1结束循环​​​​​​​

#include<stdio.h>int main(void) {    int n;    scanf("%d", &n);    int i;    //跳转到这里    out: if (n != -1) {//如果不输入-1 将一直循环           printf("*\n");        scanf("%d", &n);            goto out;//在这里定义名为out的goto语句  
  }      
   return 0;}

Tips:

1、对于循环语句,可使用一些辅助语句进行跳转或结束,如;break(直接结束循环),continue(不再进行后面的语句,直接继续返回进行循环判断),goto(无条件跳转,任意跳转到指定位置)

2、 使用循环语句的情况:如果有固定次数时,使用for,如果必须执行一次时,用do-while,其他情况用while

课外:整数的分解

1.对于一个整数做%10的操作,就得到它的个位数

2.对于一个整数做/10的操作,就去到它的个位数

然后再对2的结果再做%10,就得到了原来数的十位数了。

其他位数依次类推...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜子牙大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值