嵌套循环与循环控制

2024-04-02 06:08
文章标签 循环 控制 嵌套循环

本文主要是介绍嵌套循环与循环控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嵌套循环


嵌套循环就是在一个循环中还有一个循环, 内部循环在外部循环体中. 在外部循环的每次执行过程中都会触发内部循环, 直到内部循环执行结束. 外部循环执行了多少次, 内部循环就完成多少次. 当然, 无论是内部循环还是外部循环的break 语句都会打断处理过程.


例: 嵌套循环.

#!/bin/bash
# 嵌套的for循环.outer=1                     # 设置外部循环计数.# 开始外部循环
for a in 1 2 3 4 5
doecho "Pass $outer in outer loop."echo "--------------------------"inner=1                 # 重置内部循环计数.# 开始内部循环.for b in 1 2 3 4 5doecho "Pass $inner in inner loop."let "inner+=1"      # 增加内部循环计数.done# 内部循环结束.let "outer+=1"          # 增加外部循环的计数.echo
done
#外部循环结束.exit 0

循环控制


影响循环行为的命令 : break, continue.

break和continue这两个循环控制命令与其他语言的类似命令的行为是相同的. break命令用来跳出循环, 而continue命令只会跳过本次循环, 忽略本次循环剩余的代码, 进入循环的下一次迭代 .


例: break和continue命令在循环中的效果.

#!/bin/bash

limit=19    # 上限echo "Printing Numbers 1 through 20 (but not 3 and 11)"
a=0while [ $a -lt "limit" ]
doa=$(($a+1))if [ "$a" -eq 3 ] || [ "$a" -eq 11 ]thencontinuefiecho -n "$a "
done
# 1 2 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20echoa=0while [ "$a" -lt "$limit" ]
doa=$(($a+1))if [ "$a" -gt 2 ]then breakfiecho -n "$a "
done
# 1 2 
echoexit 0

break命令可以带一个参数. 一个不带参数的break命令只能退出最内层的循环, 而break N可以退出 N 层循环.


例: 多层循环的退出.

#/bin/bash
# break N 推出多层循环for a in 1 2 3 4 5                              # break 不带参数运行结果
do                                              #+Group 1: 1 2 3 echo -n "Group $a:  "                       #+Group 2: 1 2 3 
#-------------------------                      #+Group 3: 1 2 3 for b in 1 2 3 4 5                          #+Group 4: 1 2 3 do                                          #+Group 5: 1 2 3 echo -n "$b "if [ "$b" -eq 3 ]thenbreakfidone
#-------------------------echo
doneecho; echofor a in 1 2 3 4 5                             # break 2 运行结果
do                                             #+Group 1: 1 2 3 echo -n "Group $a:  "
#-------------------------for b in 1 2 3 4 5doecho -n "$b "if [ "$b" -eq 3 ]thenbreak 2fidone
#-------------------------echo
doneechoexit 0

continue命令也可以象break命令一样带一个参数. 一个不带参数的continue命令只会去掉本次循环的剩余代码. 而continue N将会把 N 层循环的剩余代码都去掉, 但是循环的次数不变.


这篇关于嵌套循环与循环控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/869174

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用