循环语句for

news2025/1/20 10:47:23

for循环

循环和遍历的概念

循环(Loop)和遍历(Traversal)是两个在计算机编程中经常使用的概念。

循环是一种重复执行一段代码的结构。通过循环,可以在满足一定条件的情况下,多次执行相同的代码。循环语句通常包括一个循环体(Loop Body)和一个循环条件(Loop Condition),当循环条件满足时,循环体会被执行,否则循环结束。

遍历是指对一组数据结构中的每个元素进行一次访问的过程。在计算机编程中,常常需要对数组、列表、树等数据结构中的每个元素进行遍历,
以便对它们进行操作或者输出。

循环是一种控制流程的结构,用于重复执行一段代码,而遍历是一种数据操作的过程,用于访问并处理数据结构中的每个元素。在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环(Loop)是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写,提高代码的重复利用率,以及提高程序的效率。
以下是使用循环的一些好处

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

for语句的结构

读取不同的变量值,用来逐个执行同一组命令

一般格式

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

实验1.1 :
在这里插入图片描述

在这里插入图片描述
实验1.2
在这里插入图片描述
实验1.3
在这里插入图片描述

类c语言格式

for (( 表达式1; 表达式2; 表达式3 ))
do
命令序列
done
#表达式1:定义变量并赋值
#表达式2:决定是否循环
#表达式3:决定循环变量如何改变,决定循环什么时候结束

实验2
在这里插入图片描述
在这里插入图片描述
实验1.4
1累计加到100
在这里插入图片描述

在这里插入图片描述

拓展:for语句死循环

for ((;;))
do
命令序列
done
#括号里面固定格式

常用转义字符

echo -n 表示不换行输出
echo -e 输出转义字符,将转义后的内容输出到屏幕上 echo -ne
只有加了-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"前面的字符不会被覆盖
“ \ \ " 双斜杠表示插入" \ "本身;

实验3.1: -n不换行输出

在这里插入图片描述
在这里插入图片描述

实验3.2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

for循环嵌套结构

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

在这里插入图片描述
在这里插入图片描述

跳出循环

在循环中使用 break 和 continue 命令时,它们分别有以下作用:

  • break:在循环内部,当执行到 break 命令时,会立即跳出当前的循环停止循环执行,然后继续执行下一条指令。
    可以使用 break 命令来提前终止循环,例如当达到特定条件时或者已经执行了足够的次数。

  • continue:在循环内部,当执行到 continue 命令时,会跳过本次循环剩余的代码,并继续下一次循环
    可以使用 continue 命令来跳过循环中的某些操作,例如在特定条件下跳过一次循环,或者只执行符合条件的循环。

  • 在嵌套循环中,可以在 break 和 continue 命令后面指定数字参数,来指定跳出或跳过多层循环。
    例如,break 2 会跳出终止当前循环和外层循环的迭代,而continue 2会跳过当前循环和两层外层循环的迭代。

  • break和continue命令是控制循环流程重要命令。

continue

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

在这里插入图片描述

break

在循环内部,当执行到 break 命令时,会立即跳出当前的循环停止循环执行,然后继续执行下一条指令。

在这里插入图片描述
在这里插入图片描述

拓展,在for语句的嵌套结构中continue 2 的意思

  • 设置简单的for语句嵌套结构
    在这里插入图片描述

  • 执行结果
    在这里插入图片描述

  • 原理
    continue默认为continue 1 ,当continue为默认值时,此时只会跳过内循环中的本次循环,后面循环不受影响,外循环也不受影响
    当continue 2 时,此时内循环和外循环均会受到影响,此时continue 2 会跳出本次内循环同时跳出外层循环,从外层循环处满足条件后继续向后执行下一次循环

拓展,在for语句的嵌套结构中break 2 的意思

  • 设置简单的for语句嵌套结构

在这里插入图片描述

  • 执行结果
    在这里插入图片描述
  • 原理
    break默认为break 1 ,当break为默认值时,此时只会结束内循环,外循环也不受影响。
    当break 2 时,此时内循环和外循环均会受到影响,此时break 2 会同时终止内循环和外循环。

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

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

相关文章

mysql8.0最新版本超详细安装教程

mysql8.0最新版本超详细安装教程 第一步: 百度搜索MySQL 第二步:进入MySQL官方网站后点击DOWNLOADS 第三步:下拉页面找到图中标识 并点击 第四步:点击图中标识 第五步:点击下载第一个 第六步:点击图中标识 第七步:在D盘创建mysql文件夹 第八步:将下载好的mysq压缩包放入到新建…

深度学习:Opencv的blobFromImage是如何工作的

文章目录 1 OpenCV中blobFromImage函数简介2 blobFromImage是如何工作的2.1 介绍2.2 blobFromImage 的工作流程2.3 blobFromImage 和 blobFromImages1 OpenCV中blobFromImage函数简介 如果训练模型时图像的尺寸 与实际使用的图像尺寸不一致,需要对图像尺寸进行变换; blobFr…

第一次使用服务器部署项目

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

HCIA-RS实验-STP和RSTP(2)

接上一篇文章;其他的不多说,新建一个新的配置设备;如果接上一个实验的配置的话,建议先把所有配置删除后再执行;新的拓扑也与上一个实验一致; 目录 创建新配置 配置RSTP 查看stp版本 配置边缘端口 …

如何防止重复下单

一、问题背景 最简单的:DB 事务。如创建订单时,同时往订单表、订单商品表插数据,这些 Insert 须在同一事务执行。 Order 服务调用 Pay 服务,刚好网络超时,然后 Order 服务开始重试机制,于是 Pay 服务对同…

算法基础第一章

算法基础 第一章:基础算法1、排序2、二分查找3、大数据量的加法和减法(高精度加减法)3.1、加法3.2、减法 4、前缀和4.1、一维前缀和4.2、二维前缀和 5、差分5.1、一维差分5.2、二维差分 6、双指针7、位运算7.1、lowbit的应用 8、离散化9、区间…

基于c与数据库实现的电子词典

1.搭建客户端与服务器,客户端使用多线程方式,主线程跑发送信息给服务器功能,分支线程跑循环接收服务器信息功能 客户端代码: //TCP客户端的搭建 int tcp_kehuduan() {//创建字节流套接字cfd socket(AF_INET,SOCK_STREAM,0);if(c…

【TCP服务器的演变过程】C++使用libevent库开发服务器程序

C使用libevent库开发服务器程序 一、引言二、libevent简介三、Libevent库的封装层级3.1、reactor对象封装struct event_base3.2、事件对象struct event3.3、struct bufferevent对象3.4、evconnlistener对象3.5、事件循环3.6、事件处理 四、完整示例代码小结 一、引言 手把手教…

病毒的遗传分析

噬菌体的生活周期 烈性噬菌体 噬菌体吸附到宿主细胞上尾丝鞘收缩,中轴刺穿宿主细胞头部的DNA被送入宿主细胞在数分钟内,所有的细菌核算和蛋白质合成都被抑制 噬菌体大分子合成(DNA,蛋白外壳),细菌的核算被降解 噬菌体组装:DNA被包到头部,组装尾部,装上尾丝 宿主细胞破裂:约20…

新品首发丨计讯物联5G水利遥测终端机TY511-B3,推动5G+智慧水利再进化

当前,水利在全面感知、全面互联、智慧应用等方面较其他行业存在明显差距。基于物联网行业通信技术的不断突破和水利行业对高速移动通信的强烈需求,5G移动通信以高速率、大带宽、低时延、广连接等特点让水利数据快速高效地传输成为可能,逐渐成…

如何优雅的写个try catch的方式!

软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...} 代码块,不仅有大量的冗余代码,而…

流程图拖拽视觉编程-流程编辑器2

目录 一、简介 二、自定义图元 2.1图元设计 2.2 端口QNEPort 2.3节点块QNEBlock 一、简介 前期文章: 流程图拖拽视觉编程--概述_Jason~shen的博客-CSDN博客 流程图拖拽视觉编程-流程编辑器_Jason~shen的博客-CSDN博客 本期内容: 本期将继续介绍…

【Leetcode】236.二叉树的最近公共祖先

二叉树的最近公共祖先 题目思路1思路2代码 题目 思路1 给我们两个二叉树中的节点 找出里面的最近公共祖先 首先我们要分析p q 两点有哪些位置关系 p q在根节点的两侧 此时最近公共祖先就是根节点 在根节点一侧 此时两个节点都在根节点左侧 此时可以递归二叉树 让root.left…

内存取证小练习-基础训练

这是题目和wolatility2.6的链接 链接:https://pan.baidu.com/s/1wNYJOjLoXMKqbGgpKOE2tg?pwdybww 提取码:ybww --来自百度网盘超级会员V4的分享 压缩包很小,题目也比较简单基础,可以供入门使用 1:Which volatility…

使用auto-gpt来写一篇技术文章(如何部署autogpt+遇到的问题+如何使用)

文章目录 前言一、autogpt本地部署1.clone代码2.启动虚拟环境3.运行项目 二、使用aotogpt生成文章1.人设描述2.设置目标3.文章的生成过程4.文章的生成内容 总结 前言 最近AI技术的发展非常迅猛,尤其是和GPT相关的技术,备受瞩目。近日,Autogp…

nvm安装管理npm

1.根据http://t.csdn.cn/mRwCQ这个教程完成安装 2.使用nvm install [指定版本号],下载了16.15.1,和10.15.1版本 2.5 这里其实出了一点问题,我在下载16.15.1时,因为墙的问题其实是下载出错,报了一个error的&#xff0c…

手推A Unified Solution to Constrained Bidding in Online Display Advertising论文

A Unified Solution to Constrained Bidding in Online Display Advertising:一种对在线展示广告约束出价问题的通用解决方案 未开放但是可以搜到 NeuralAuction: 电商广告中的端到端机制优化方法 https://arxiv.org/abs/2106.03593 一种使用真负样本的在线延迟反…

JVM,关于JVM基础的知识,你确定不了解一下吗?

目录 一.JVM的概念 什么是JVM? 二.JVM的运行流程 1.class文件如何被JVM加载并运行 2.JVM运行时数据包括哪些区域(M) 三.类加载的过程(M) 四.双亲委派模型 1.双亲委派模型分析 2.JAVA中有哪些类加载器&#xf…

Maven私服搭建

为什么要搭建私服 通常在maven项目的pom.xml文件中引入了某个依赖包之后&#xff0c;maven首先会去本地仓库去搜索&#xff0c;本地仓库搜索不到会去maven的配置文件settings.xml中配置的maven镜像地址去找&#xff0c;比如&#xff1a; <mirrors><!-- mirror| Specif…

动态规划 --- 电线布设

动态规划 — 电线布设 题目描述 说是话&#xff0c;刚看到也是很懵逼&#xff0c;不想交子集是什么&#xff1f;乱七八糟的连线。 其实仔细想想后&#xff0c;觉得题目应该是说给定了这些点的连接端点&#xff0c;然后从他给的连线中选择出不想交的且条数最多的连线&#x…