【循环程序设计-谭浩强适配】(适合专升本、考研)

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

完整资料如下:纯干货、纯干货、纯干货!!!

关注专栏:<后续持续更新>


目录

循环结构语句

1.while循环语句

2.do-while循环语句

3.for循环语句

4.goto语句

循环结构的嵌套

三种循环的比较

break语句

continue语句

break与continue的区别:


循环结构语句

分类:while循环语句、do-while循环语句、for循环语句、goto语句。

  • 所有循环语句与选择语句相同,若后面的循环体是一个复合语句则需要加上{}括起来。

  • 一般情况下三种循环语句可以相互替换(只有while与for无条件等价)

  • 只有for循环可以缺省表达式(while与do-while都不可以)

1.while循环语句

格式:

while(表达式){ //只要条件表达式为真就执行下面的循环体
  循环体;
}
  • while语句的特点是先判断条件表达式、后执行循环体语句(这点与do-while区别)

  • while后面的表达式称为循环条件表达式(24年真题)

  • while配合getchar赋值,只要第一次满足条件,那么让你多次输入直到不满足条件为止

    char ch;
    while((ch=getchar())!='9');//只要不等于9,那么执行空语句,返回去再判断,判断又要进行输入
    printf("ok");

2.do-while循环语句

格式:

do{
  循环体;//先无条件执行一次,在判断循环条件,为真则继续执行
}
while(表达式);
  • do-while循环是先无条件执行一次循环体,再去判断循环条件(这点与while不同),即do-while至少执行一次循环体

  • do后面不允许加分号,while后面必须加分号

3.for循环语句

格式:

for(表达式1;表达式2;表达式3){
      循环体;
}
//表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值
//表达式2:循环判断条件(循环条件表达式)
//表达式3:循环变量的增值或减值(使循环趋于结束的条件)
  • for循环不仅可以解决循环未知的问题,还特别适合解决循环次数未知的问题,可完全代替while语句,即两者无条件等价。

  • 表达式1还可以是与循环无关的其他表达式,同时允许在表达式1内定义变量并初始化(此变量作用域只限于for语句),如果定义多个变量,那么多个变量只能是同一数据类型

    for(sum=0;i<100;i++){sum+=i}//与循环无关的变量
    ​
    for(int sum=0;i<100;i++){sum+=i}//定义并初始化
    ​
    for(int i=1,sum=0;i<100;i++);//i与sum都是int类型

  • 表达式2省略时循环条件一直为真,导致for循环无终止死循环(可以在循环体中配合break判定)

  • 表达式3省略需要在循环体内设置趋于结束的循环条件(即表达式3与循环体内的内容可以调换位置。

  • 当三个表达式都省略时,for循环会陷入死循环

    for(;;){
        printf("ok");//无终止输出“ok”
    }

  • 三个表达式都可以是逗号表达式。

    for(int i=0,sum=1;i<100,sum<200;i++,sum++){
        printf("ok");
    }
    ⚠️注意:此时表达式2以最后一个终止条件为准。

  • 三个循环语句中,只有for循环可以缺省循环条件表达式

  • 表达式1一般在for语句之前定义并初始化,因为这样可以在for语句之外拿到循环变量的值。

    int i=0;
    for(;i<=10;i++){
      printf("ok\n");
    }
    ⚠️注意:循环结束后,循环变量等于循环结束的终止值+1,即这里的i最后等于11。

  • 表达式3可以与循环体互换位置,作用效果相同。

    for(int i=0;i<10;i++){
    	printf("%d\n",i);
    }
    
    等价于:
    
    for(int i=0;i<10;printf("%d\n",i),i++);

4.goto语句

格式:goto 语句标号

loop:if(i<100){
	sum+=i;
	i++;
	goto loop;//在执行到goto语句时,跳转到上面语句标号的位置执行
}
  • goto 语句语句标号:必须在同一函数内(即在同一函数内,可以跳转到任何地方)

  • 语句标号:不允许放在初始化语句和声明语句前面

    loop:int i 和 loop int i=1都是错误的

  • goto语句通常与if语句连用以构成循环的目的

    loop:if(i<100){
    	sum+=i;
    	i++;
    	goto loop;//在执行到goto语句时,跳转到上面语句标号的位置执行
    }

循环结构的嵌套

定义:在一个循环语句中又包含另一个完整的循环语句称为循环嵌套

  • 三种循环语句可以相互嵌套。

  • 内循环使用break与continue对外循环没有影响。

三种循环的比较

  1. 一般情况下,3种循环可以相互替换。

  2. while和do-while的循环体中必须指定循环趋于结束的语句,而for可以放在表达式3也可以放在循环体中。

  3. while和do-while的循环初始条件操作应该放在while和do-while之前完成。

break语句

作用:终止循环,跳出循环体(还可以跳出switch分支)

  • break只能用于循环语句与switch语句之中,不能单独使用。(如果出现在其他语句中,说明其他语句在循环或switch中)

    int a=12;
    for(int i=0;i<a;i++){
       if(i==5)break;//出现在if语句中,原因if在for语句中
    }

continue语句

作用:终止“本次”循环

  • continue只能出现在循环体中(如果出现在其他语句中,说明其他语句在循环中)

    int a=12;
    for(int i=0;i<a;i++){
        switch(i){
           case 12:break;
           case 10:continue;
        }
    }
break与continue的区别:

break是结束当前循环,所以在嵌套循环中,内循环遇到一个break,是结束整个内循环,但是没有结束外循环

continue是结束本次循环,所以在嵌套循环中,内循环遇到一个continue,是结束内循环这一次的循环条件,直接进行到内循环下一个

循环条件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值