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

embedded/2024/10/22 13:32:42/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

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

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

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

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

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

c="https://img-blog.csdnimg.cn/direct/19caae1e793c47f6a47133efc1a3bada.png" width="1200" />


c">目录

c" style="margin-left:0px;">循环结构语句

c" style="margin-left:160px;">1.while循环语句

c" style="margin-left:160px;">2.do-while循环语句

c" style="margin-left:160px;">3.for循环语句

c" style="margin-left:160px;">4.goto语句

c" style="margin-left:0px;">循环结构的嵌套

c" style="margin-left:0px;">三种循环的比较

c" style="margin-left:0px;">break语句

continue%E8%AF%AD%E5%8F%A5-toc" style="margin-left:0px;">continue语句

continue%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9A-toc" style="margin-left:200px;">break与continue的区别:


c" />

循环结构语句

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

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

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

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

1.while循环语句

格式:

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

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

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

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

2.do-while循环语句

格式:

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

  • do后面不允许加分号࿰c;while后面必须加分号

3.for循环语句

格式:

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

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

    <code class="hljs">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类型code>

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

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

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

    <code class="hljs">for(;;){printf("ok");//无终止输出“ok”
    }code>

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

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

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

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

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

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

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

4.goto语句

格式:goto 语句标号

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

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

    <code class="hljs">loop:int i 和 loop int i=1都是错误的code>

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

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

循环结构的嵌套

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

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

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

三种循环的比较

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

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

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

break语句

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

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

    <code class="hljs">int a=12;
    for(int i=0;i<a;i++){if(i==5)break;//出现在if语句中࿰c;原因if在for语句中
    }code>

continue%E8%AF%AD%E5%8F%A5">continue语句

作用:终止“本次”循环

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

    <code class="hljs">int a=12;
    for(int i=0;i<a;i++){switch(i){case 12:break;case 10:continue;}
    }code>
continue%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9A">break与continue的区别:

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

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

循环条件


http://www.ppmy.cn/embedded/41024.html

相关文章

【class5】建立人工智能系统(2)

【昨日内容复习】 进行监督学习时&#xff0c;第一个步骤是提取数据集的文本特征和对应的标签。 提取文本特征的具体步骤如下&#xff1a; STEP1. 构造词袋模型&#xff0c;提取数据集中的文本特征 STEP2. 使用toarray()函数&#xff0c;将X转换为一个NumPy数组&#xff0c;方…

设置nohup java -jar命令将日志写入test.log文件

命令&#xff1a; nohup java -jar YourApp.jar > test.log 2>&1 &这个命令执行以下操作&#xff1a; nohup: 让命令在后台运行&#xff0c;不受终端关闭的影响。java -jar YourApp.jar: 启动 Java 应用程序。“> test.log”: 将标准输出重定向到 test.log …

HTML批量文件上传3—Servlet批量文件处理FileUpLoad

作者:私语茶馆 1.开源的文件上传组件介绍 本文使用的是Apache Commons下面的一个子项目FileUpload,另外一个常见组件是SmartUpload。FileUpload遵循RFC 1897,即“Form-based File Upload in HTML”,对于请求需要满足:HTTP协议,Post请求,content Type=“multipart/form-d…

PHP 匿名函数和闭包在数据结构中的应用

匿名函数和闭包在数据结构处理中的应用php 中的匿名函数和闭包可用于处理数组、链表和队列等数据结构。针对数组&#xff0c;匿名函数可用于过滤元素&#xff1b;针对链表&#xff0c;闭包可用于创建节点&#xff1b;针对队列&#xff0c;匿名函数和闭包可实现 fifo 队列操作。…

springmvc核心流程

核心流程及配置 核心流程 执行流程 用户发送请求到DispatcherServlet前端控制器&#xff0c;前端控制器收到请求后自己不进行处理&#xff0c;而是委托给其他的解析器进行处理&#xff0c;作为统一访问点&#xff0c;进行全局的流程控制 DispatcherServlet调用HandlerMapping映…

免费PDF批量加密工具

最近在找PDF批量加密的软件来着&#xff0c;发现很多都是需要收费的&#xff0c;当然如果平时工作需要用的比较多&#xff0c;支持一下还是ok的&#xff0c;但是多数人还是偶尔用一下所以没有必要买。 工作用的话&#xff0c;一般企业文件、个人隐私资料、重要合同...所有重要文…

AI编程工具为什么选github copilot?

Github Copilot 是一个奇迹 它的竞争对手&#xff08;Amazon, Google, Meta, 腾讯&#xff09;都是免费的&#xff0c;但每月10-20美元的Github Copilot市场占有率最高。 1、2021年6月上线&#xff0c;比ChatGPT早近一年半 2、GitHub统计&#xff1a; 88%的用户获得效率提升平…

【OpenVINO™】在 C# 中使用OpenVINO™ 部署PP-YOLOE实现物体检测

前言 OpenVINO™ C# API 是一个 OpenVINO™ 的 .Net wrapper&#xff0c;应用最新的 OpenVINO™ 库开发&#xff0c;通过 OpenVINO™ C API 实现 .Net 对 OpenVINO™ Runtime 调用&#xff0c;使用习惯与 OpenVINO™ C API 一致。OpenVINO™ C# API 由于是基于 OpenVINO™ 开发…