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

无偿分享学习资料,需要的小伙伴评论区或私信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,是结束内循环这一次的循环条件,直接进行到内循环下一个

循环条件

相关推荐
勘察加熊人3 小时前
forms实现俄罗斯方块
c#
艾妮艾妮6 小时前
C语言常见3种排序
java·c语言·开发语言·c++·算法·c#·排序算法
小码编匠7 小时前
.NET 验证码生成神器基于 SkiaSharp 的高性能方案
后端·c#·.net
专注VB编程开发20年7 小时前
Aspose.words,Aspose.cells,vb.net,c#加载许可证,生成操作选择:嵌入的资源
c#·word·.net·vb.net
andy55207 小时前
.NET 使用 WMQ 连接Queue 发送 message 实例
xml·c#·wmq·c# 连接wmq·发送消息到wmq
破罐子不摔7 小时前
【C#使用S7.NET库读取和写入西门子PLC变量】
java·c#·.net
杰尼杰尼丶8 小时前
Winform MQTT客户端连接方式
c#·winform
weixin_307779139 小时前
C#实现HiveQL建表语句中特殊数据类型的包裹
开发语言·数据仓库·hive·c#
lixy5799 小时前
C# WPF 命令机制(关闭CanExecute自动触发,改手动)
c#·wpf
天地长久.9 小时前
C# N层架构和解耦
c#·解耦·多层架构