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

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

循环条件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/326983.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java入门基础学习笔记21——Scanner

在程序中接收用户通过键盘输入的数据&#xff1a; 需求&#xff1a; 请在程序中&#xff0c;提示用户通过键盘输入自己的姓名、年龄、并能在程序中收到这些信息&#xff0c;怎么解决&#xff1f; Java已经写好了实现程序&#xff0c;我们调用即可。 API&#xff1a;Applicat…

车载电子电器架构 —— 应用软件开发(中)

车载电子电器架构 —— 应用软件开发(中) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

韵搜坊(全栈)-- 前后端初始化

文章目录 前端初始化后端初始化 前端初始化 使用ant design of vue 组件库 官网快速上手&#xff1a;https://www.antdv.com/docs/vue/getting-started-cn 安装脚手架工具 进入cmd $ npm install -g vue/cli # OR $ yarn global add vue/cli创建一个项目 $ vue create ant…

全新Transformer模型:全球与局部双重突破!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享&#xff0c;与你一起了解前沿深度学习信息&#xff01; 引言&#xff1a;探索视觉变换器在对象重识别中的全局与局部特征 在对象重识别&#xff08;Re-ID&#xff09;的研究领域中&#xff0c;如何有效地从不同时间…

网络网络层之(5)IPv6协议

网络网络层之(5)IPv6协议 Author: Once Day Date: 2024年5月12日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day…

答辩PPT框架如何搭建?文心一言AI辅助构建

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…

2.1 软件工程

第2章 信息技术知识 2.1 软件工程 现状&#xff1a; 开发软件的规模越来越大复杂度越来越高用户需求并不十分明确缺乏软件开发方法和工具方面的有效支持 软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件…

geotrust ov泛域名证书2990

Geotrust是一家正规的CA证书颁发机构&#xff0c;致力于为个人以及企事业单位开发者提供安全可靠的数字证书产品&#xff0c;维护了个人博客网站、企业官网、商城网站以及银行等金融网站的数据安全&#xff0c;营造了一种健康的网络环境。今天就随SSL盾小编了解Geotrust旗下的O…

Ansys Zemax|基于Alvarez自由曲面透镜的光学变焦系统

附件下载 联系工作人员获取附件 Alvarez变焦是一个出色的光学系统&#xff0c;其中由自由曲面镜头的横向位移提供了光学变焦。这篇文章解释了Alvarez变焦镜头的主要原理&#xff0c;并提供了在Zemax OpticStudio中对Alvarez变焦镜头的计算和建模演示。 什么是Alvarez变焦镜头…

Android PreferenceActivity可以自动设置的Activity

1、介绍 PreferenceActivity 是一个抽象类&#xff0c;继承自ListActivity ,该类封装了SharedPreferences. PreferenceActivity 提供了一些常用的设置项如,与普通组件一样&#xff0c;这些配置项既可以从XML文件创建&#xff0c;也可以从代码创建. 每一个设置项标签有一个andro…

MyBatis——MyBatis 参数处理

一、单个简单类型参数 简单类型包括&#xff1a; byte short int long float double char Byte Short Integer Long Float Double Character String java.util.Date java.sql.Date parameterType 属性&#xff1a;告诉 MyBatis 参数的类型 MyBatis 自带类型自动推断机制…

揭秘APP广告:变现逻辑全解析!

在当今的移动互联网时代&#xff0c;APP广告变现已经成为了各大应用开发者的主要营收来源之一。然而&#xff0c;随着科技的发展、用户行为的变化以及广告市场趋势的演进&#xff0c;APP广告变现逻辑也正在不断地进行优化和调整。本文将基于当前市场和技术趋势&#xff0c;为大…

【技巧】如何查看RAR格式文件?

RAR是一种压缩文件格式&#xff0c;想要查看RAR文件&#xff0c;如果电脑系统自带解压缩功能&#xff0c;可以直接双击打开查看&#xff1b;也可以使用解压缩软件&#xff0c;比如常见的WinRAR、7-ZIP软件&#xff0c;来查看RAR文件 。 以WinRAR软件为例&#xff0c;安装好软件…

[华为OD] B卷 树状结构查询 200

题目&#xff1a; 通常使用多行的节点、父节点表示一棵树&#xff0c;比如 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后&#xff0c;请打印出来树中他的所有下层节点 输入描述 第一行输入行数&#xff0c;下面是多行数据&#xff0c;每行以空…

海外客户开发渠道有哪些

海外客户开发是一个多元化的过程&#xff0c;涉及线上与线下多个渠道。以下是一些有效的海外客户开发渠道&#xff1a; 平台电商&#xff1a; 利用国际B2B电商平台&#xff0c;如阿里巴巴国际站、 Globalsources、Made-in-China等&#xff0c;这些平台拥有庞大的国际买家流量&a…

vue-fontawesome-elementui-icon-picker选择icon框架

第一步&#xff1a;安装vue-fontawesome-elementui-icon-picker依赖 npm install vue-fontawesome-elementui-icon-picker --save-dev 第二步&#xff1a;main.js配置 (放在element ui引入之后) import iconPicker from vue-fontawesome-elementui-icon-picker; Vue.use(ico…

深入探索van Emde Boas树:原理、操作与C语言实现

van Emde Boas (vEB) 树是一种高效的数据结构&#xff0c;用于处理整数集合。它是由荷兰计算机科学家Jan van Emde Boas在1977年提出的。vEB树在处理整数集合的查找、插入、删除和迭代操作时&#xff0c;能够以接近最优的时间复杂度运行。vEB树特别适合于那些元素数量在某个较小…

跨ROS系统通信:使用TCP实现节点间的直连

当涉及到在机器人操作系统&#xff08;ROS&#xff09;环境中的通信时&#xff0c;标准做法通常是在同一个ROS网络内通过话题和服务进行。但在某些特定情况下&#xff0c;比如当你有两个分布在不同网络中的ROS系统时&#xff0c;标准的通信方法可能不太适用。此时&#xff0c;一…

基于vgg16和efficientnet卷积神经网络的天气识别系统(pytorch框架)全网首发【图像识别-天气分类】

一个能够从给定的环境图像中自动识别并分类天气&#xff08;如晴天、多云、雨天、雪天闪电等&#xff09;的系统。 技术栈&#xff1a; 深度学习框架&#xff1a;PyTorch基础模型&#xff1a;VGG16与EfficientNet任务类型&#xff1a;计算机视觉中的图像分类 模型选择 VGG16 …

【微信小程序开发】深入探索事件绑定、事件冒泡、页面跳转的逻辑实现

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…