多重循环与中断循环
时间:2021-07-20
本文章向大家介绍多重循环与中断循环,主要包括多重循环与中断循环使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
for 循环和while 循环 的 多重循环与中断循环
1 .多重循环(for 和while 都可以使用多重循环)
#!/bin/bash
for ((i=1;i<=5;i++))
do
echo "外循环为:$i"
for (( j=1;j<=3;j++))
do
echo "----内循环为: $j"
done
done
2 . break跳出循环
break 用来跳出单个循环,后面可以接数字,表示跳出多少层循环,缺省则默认跳出 一 层。
2.1 break 跳出一层循环
#!/bin/bash
for ((i=1;i<=3;i++))
do
echo "#第一层循环为:$i"
for (( j=1;j<=3;j++))
do
echo "--第二层循环为: $j"
for (( k=1;k<=3;k++))
do
echo "-----第三层循环为: $k"
if [ $k -eq 2 ];then #当k值等于2 时,条件成立
break #break 跳出1 层循环
fi
done
done
done
2.2 break 跳出多层
#!/bin/bash
for ((i=1;i<=3;i++))
do
echo "#第一层循环为:$i"
for (( j=1;j<=3;j++))
do
echo "--第二层循环为: $j"
for (( k=1;k<=3;k++))
do
echo "-----第三层循环为: $k"
if [ $k -eq 2 ];then #当k值等于2 时,条件成立
break 2 #break 跳出2层循环
fi
done
done
done
3.continue 终止本次循环,不执行后续命令,但是不跳出循环
#!/bin/bash
for ((i=1;i<=3;i++))
do
echo "#第一层循环为:$i"
for (( j=1;j<=3;j++))
do
echo "--第二层循环为: $j"
if [ $j -eq 2 ];then #当 j 值等于2 时为真
continue #终止本次循环,不执行后续的语句
fi
echo "你好"
done
done
因为continue 是终止当前1 次 循环,不执行后续语句,而不是跳出循环,所以,如果在while 循环里使用 continue 命令时,需要注意位置,避免出现死循环
4.while 循环的死循环
4.1 这是正常的while 循环
#!/bin/bash
#设置变量a 的初始值为0
a=0
while [ $a -lt 3 ] #当变量a 的值小于3时,条件成立
do
echo “您好”
let a++ #每次循环,变量a 的值加1
done
4.2 当continue 使用不当,使条件里的变量没有进行迭代,造成死循环
#!/bin/bash
#设置变量a 的初始值为0
a=0
while [ $a -lt 3 ] #当变量a 的值小于3时,条件成立
do
echo “您好”
continue #continue 后面的语句不会被执行,所以,后面let a++不会生效,造成a值恒为0,使得while 的判断句一直有效,造成死循环
let a++ #每次循环,变量a 的值加1,因为写在 continue语句后面,所以不会被执
行
done
执行脚本后,一直 输出“您好” ,按ctrl +c 结束
原文地址:https://www.cnblogs.com/zhijiyiyu/p/15033410.html
- 除了奇奇怪怪的机器人们,2017年人工智能还干了哪些“蠢事”?
- 区块链搬砖的坑及有效鉴别方法
- 英伟达回应禁令:研究人员放心用不更新驱动就没影响
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(88)-Excel导入和导出-主从表结构导出
- WCF中的Binding模型之六(完结篇):从绑定元素认识系统预定义绑定
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(57)-插件---ueditor使用
- 何为正则表达式?要他有何用?
- 向silverlight传递自定义参数
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(87)-MVC Excel导入和导出
- sl从程序集中读取xaml文件
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
- WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]
- 如何解决打开VS2010后没有UI界面的问题
- RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法