Shenll编程之循环语句与函数

news2025/4/7 0:31:36

循环语句

  • 一、for循环
  • 二、continue跳出循环
    • continue二次跳出循环
  • 三、break终止循环

循环是一种控制流程的结构,用于重复执行一段代码
遍历是一种数据操作的过程,用于访问并处理数据构成中的每个元素
在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作
循环是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写,提高diamagnetic的重复利用率,以及提高程序的效率。以下是使用循环的一些好处:

  • 重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写
  • 简化程序逻辑:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写,减少程序代码量,提高程序的可读性和可维护性。
  • 提高代码的重复利用率:通过将重复的代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。
  • 提高程序的效率:循环可以让程序自动化执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

一、for循环

for语句能读取不同的变量值,用来逐个执行同一组命令
在已知的范围内的数据进行批量性,重复性的操作。
在这里插入图片描述
其格式为:

  • for 变量名 in 取值列表
  • do
  • 命令序列
  • done

举例:
在这里插入图片描述
在这里插入图片描述
这只是一层循环,用的情况比较少,二层循环使用的比较多,二层循环会用上转义字符
常用转义字符
echo -n:表示不换行输出
echo -e:输出转义字符,将转义后的内容输出到屏幕上
只有加了-e才能执行下面的转义符

  • \b:转义后相当于按退格键(backspace),但前提是“\b”后面存在字符;“\b”表示删除前一个字符,“\b\b”表示删除前两个字符
  • \c:不换行输出,在“\c”后面不存在字符的情况下,作用相当于echo -n;但是当“\c”后面任然存在字符时,“\c”后面的字符将不会被输出
  • \n:换行,被输出的字符从"\n"处开始另起一行
  • \f:换行,但是换行后的新行的开头位置连接着上一行的行尾
  • \v:与\f相同
  • \t:转移后表示插入tab,即横向制表符
  • \r:光标移至行首,但不换行,相当于使用“\r”以后的字符覆盖“\r”之前同等长度的字符;但是当“\r”后面不存在任何字符时,"\r"前面的字符不会覆盖
  • \:表示插入“\”本身

举例:
比如我们做一个九九乘法表
在这里插入图片描述
这就是我们小学所熟知的乘法表,那么是如何编写的呢,接下来解密:

  • 给i赋值1-9形成一个循环,循环九次
    在这里插入图片描述
  • 进入二次循环,并且添加条件:j第一次等于1,j永远小于或者等于i,如何j每次自增一。每个条件中间得用分号隔开,计算序列得用双括号。
    在这里插入图片描述
    这一步会和第一个for循环配合,就比如i循环就次,第一次是1,那么j也是1,那么j和i是等于的关系,是可以执行的,经过第一次循环之后会变成2,因为他会自增一,但是2比i的1高,那么就无法实现内循环j>=i的条件,使用无法实现,即结束内循环,那么就开始第二次外循环,此时外循环是2,开始内循环,j由1开始,1比2小,即可继续循环,j自增一之后变成2,此时等于i,那么也可以继续循环,但是j再经过自增一之后变成了3,变得比i的第二次循环数值大,那么便无法实现此次循环,当即退出第二次外循环,进行第三次外循环。。。依次类推,直至完成第九次外循环和内循环。
  • 设置计算公式
    在这里插入图片描述
    导入i的值乘以导入j的值(i和j的值都会随着循环实时变换)=导入i乘以j之后的值。
  • 退出内循环,echo,退出外循环
    在这里插入图片描述
    全局一起看:
    在这里插入图片描述
    有三个决定格式的参数得记住,不加也可以执行,但是不会美观
    在这里插入图片描述

二、continue跳出循环

满足conrinue条件时跳出循环,但是不影响后续循环执行它的作用是在循环内部跳过本次循环并继续下一次循环。
举例:
在这里插入图片描述
在这里插入图片描述

continue二次跳出循环

就是连续跳出两个循环
在这里插入图片描述
在这里插入图片描述
相当于第一次外循环进入内循环,与1和2完成之后到达3的时候,满足了内循环里if的条件,会启动continue 2命令,直接跳出两个循环,跳出第一个循环为内循环进入外循环,如何接着跳出外循环,那么就相当于直接跳过了本次的循环操作。如何外循环开始第二次循环,再次与内循环进行1和2的互动,到达3之后又满足if条件,则再次进行跳出两个循环。依次类推。

三、break终止循环

break:直接终止接下来的循环

在这里插入图片描述
在这里插入图片描述
原理和continue差不多,只不过continue是跳过此次循环,并不影响下一个循环,而break则是直接终止接下来的循环。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++标准模板(STL)(std::array)(二)

定义于头文件 <array> template< class T, std::size_t N > struct array;(C11 起) std::array 是封装固定大小数组的容器。 此容器是一个聚合类型&#xff0c;其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数…

苹果id密码忘记了怎么重新设置?请收好这份攻略!

案例&#xff1a;怎么重新设置apple ID密码&#xff1f; 【9敏&#xff01;想下载美颜相机&#xff0c;结果忘记苹果id密码了&#xff0c;有什么方法重新设置吗&#xff1f;】 在日常使用中&#xff0c;我们有时候会遇到忘记苹果ID密码的问题&#xff0c;这时候需要重新设置苹…

车联网OTA安全实践

摘要&#xff1a; 近年来&#xff0c;智能汽车已成为全球汽车产业发展的战略方向&#xff0c;汽车技术与工程核心逐渐从传统硬件层面转移到软件层面&#xff0c;汽车行业已经踏上了软件定义汽车&#xff08;SDV&#xff09;的变革之路。 在SDV的大趋势下&#xff0c;汽车零部件…

界面控件DevExpress WinForm的垂直网格,让数据展示更灵活(二)

DevExpress WinForm Vertical Grid&#xff08;垂直网格&#xff09;组件设计用于提供UI灵活性&#xff0c;它允许显示数据集中的单个行&#xff0c;或在其90度反向网格容器中显示多个数据集行。此外&#xff0c;开发者还可以将其用作属性网格&#xff0c;就像在Visual Studio …

VueBaiDuMap百度地图组件常用案例

VueBaiDuMap获取可视区边界点坐标_毛三仙的博客-CSDN博客【代码】VueBaiDuMap获取可视区边界点坐标。百度地图&#xff0c;左上角左下角右上角右下角坐标https://blog.csdn.net/m0_74149462/article/details/130420983?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%…

《springboot实战》 第十二章 SpringBoot整合swagger-bootstrap-ui

前言 SpringBoot整合swagger&#xff0c;使用swagger-bootstrap-ui美化页面。 1、环境配置 1.1、导入依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version…

不得不说的结构型模式-代理模式

目录 代理模式&#xff1a; 下面是一个简单的C代码案例 下面是面试中可能遇到的问题&#xff1a; 代理模式&#xff1a; 代理模式是一种结构型设计模式&#xff0c;它通过引入一个代理对象来控制对另一个对象的访问。代理对象充当原始对象的中介&#xff0c;通过拦截对原始…

倾斜摄影超大场景的三维模型的顶层合并的点云抽稀处理技术分析

倾斜摄影超大场景的三维模型的顶层合并的点云抽稀处理技术分析 倾斜摄影超大场景的三维模型的顶层合并需要进行点云抽稀处理&#xff0c;以减小数据量和提高数据处理和展示性能。以下是几种常用的点云抽稀处理技术&#xff1a; 1、体素栅格化&#xff1a;将点云数据转换为3D体…

【TCP 协议】报文格式,数据可靠传输的机制(一)

哈喽&#xff0c;大家好~我是你们的老朋友&#xff1a;保护小周ღ 本期为大家带来的是网络编程的 TCP 传输控制协议的概念 &#xff0c;首先会讲解 TCP 协议的报文格式&#xff0c;在学习报文格式之后&#xff0c;会学习两种 TCP 保证数据可靠传输的机制&#xff0c;确认应答…

getType() 和 getGenericType()的区别

处理泛型时会经常用到这两个方法&#xff0c;但是二者的区别是什么&#xff1f; 先看看官方的解释&#xff1a; getType 》&#xff1a;Returns a Class object that identifies the declared type for the field represented by this Field object. 返回字段对象声明类型的…

nodejs+python+php+springboot+vue 婚庆公司服务网站管理系统

管理员模块 &#xff08;1&#xff09;信息管理模块&#xff1a;对商家和个人的查看&#xff0c;修改。 &#xff08;2&#xff09;留言管理模块&#xff1a;对留言进行管理&#xff0c;确定是否能进行发布&#xff0c;对留言进行回复。 &#xff08;3&#xff09;权限管理&…

Git常用命令2

git commit --amend 有时候我们提交完了才发现漏掉了几个文件没有添加&#xff0c;或者提交信息写错了。 此时&#xff0c;可以运行带有 --amend 选项的提交命令来重新提交,这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改&#xff08;例如&#xff0c;…

【C++入门】一篇搞懂auto关键字

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【C之路】 目录 作用不那么大的场景auto真正的价值注意点auto不能推导的场景范围for范围for的使用条件 作用不那么大的场景 在C中推出了…

工业元宇宙对于制造业的影响有哪些?

伴随元宇宙的快速发展&#xff0c;它在诸多现实场景中都实现了广泛应用&#xff0c;特别是在全球科技与产业竞争核心的智能制造领域。元宇宙与智能制造融合的本质是重构企业研发、制造、销售、终端四大场景&#xff0c;相当于把企业打包进虚拟世界&#xff0c;在虚拟世界中建设…

(五)ArcCatalog应用基础——ArcCatalog基本操作

&#xff08;二&#xff09;ArcCatalog应用基础——ArcCatalog基本操作 当ArcCatalog 与文件夹、数据库或者 GIS 服务器建立链接之后&#xff0c;就可以通过 ArcCatalog 来浏览其中的内容。ArcCatalog 具有浏览地图和数据、创建元数据、搜索地图数据、管理数据源等功能&#x…

SpringBoot RabbitMQ 死信队列

1. 死信定义 无法被消费的消息&#xff0c;称为死信。 如果死信一直留在队列中&#xff0c;会导致一直被消费&#xff0c;却从不消费成功&#xff0c;专门有一个存放死信的队列&#xff0c;称为死信队列(DDX, dead-letter-exchange)。 死信队列 DLX&#xff0c;Dead Letter Exc…

火山引擎 BVE 视频图片硬件编码器演进之路

动手点关注 干货不迷路 前言 近日&#xff0c;第 17 届世界编码器大赛 MSU 2022 公布硬件编码器比赛结果&#xff0c;在 60 fps&#xff08;帧率&#xff09;的超快视频编码赛道上&#xff0c;火山引擎多媒体实验室自主研发的 BVE 1.1 编码器表现突出&#xff0c;荣获最佳 FPGA…

计算机网络学习06(HTTP1.0 vs HTTP1.1)

1、响应状态码 HTTP/1.0仅定义了16种状态码。HTTP/1.1中新加入了大量的状态码&#xff0c;光是错误响应状态码就新增了24种。比如说&#xff0c;100 (Continue)——在请求大资源前的预热请求&#xff0c;206 (Partial Content)——范围请求的标识码&#xff0c;409 (Conflict)…

【C++】priority_queue使用和模拟实现——仿函数

文章目录 1. priority_queue的使用1.priority_queue的介绍2.priority_queue的结构3. 主要接口4. 使用示例 2. 仿函数1. 仿函数的概念2.尝试实现仿函数 3.priority_queue的模拟实现1.priority_queue的结构2. 接口实现1.向下调整算法2. 向上调整算法3.构造函数4.修改数据5.获取数…

机器学习 -Statsmodels

机器学习记录 Statsmodels 用于探索数据, 估计模型, 并运行统计检验. conda install -y statsmodels线性回归 import numpy as np import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm import statsmodels.datasets.utils as du import sea…