循环 -控制语句

循环

循环是什么

重复执行一段代码的结构。只要满足循环的条件,会一直执行这个代码。

循环条件:在一定范围之内,按照指定的次数来执行循环。

循环体:在指定的次数内执行的命令序列。只要条件满足循环体会被一直执行。

循环和遍历

遍历:对数据结构中每个元素进行一次访问的过程。通常和循环一起使用。

访问的目的就是为了执行特定的操作。

循环是操作

遍历是输出

循环的作用

1、重复执行代码,尤其是统一的,相同的,批量的操作。

2、可以提高代码的重复利用率

3、可以提高人工的效率,减少人工的干预,提高效率

4、可以简化程序的逻辑,降低代码出错的可能性。

for循环

for循环:已知循环次数的场景。

while循环:和for循环可以通用,常用于死循环

until:条件不满足才执行循环,条件满足,不执行。

for循环的格式

格式一:
for  变量名(前面没有$)   in   范围  {  }
do  
•         命令序列
done     结尾
for i in {1..10}
do
 echo $i
done
格式二

类c语言格式

for  (( 表达式1;表达式2;表达式3))
do
命令序列
done

for ((i=0;i<=5;i++))

表达式1:定义变量且赋予初始值

表达式2:循环的范围

表达式3:循环的方式,变量每一次自增1

格式三
死循环
for  (( ;  ;))
do
命令序列
done

实操

#累加求和?1-100一直加,最后结果是多少?用循环来实现
sum=0
for i in {1..100}
do
   sum=$[$sum + $i ]
done
echo  "1-100和"$sum

#自定义输入一个数,然后求从1到该数字的累加?不超过100
read -p "输入一个0-100之间的随机数" a
num=0
for ((i=1;i<=a;i++))
do
  num=$(($num+$i))
done
echo $nu

循环控制语句

continue:把执行到continue时,跳出当前循环,但是循环条件依然满足,会执行会序的循环条件。

break:在循环内部,执行到break命令时,会立即跳出当前循环,并终止

#猜数字,输入一个0-100的随机数,这个数由系统生成
#要用死循环写,一直到猜中才停止
a=$[$RANDOM%100+1]
for ((;;))
do
read -p "输入0-100随机数" b
if [[ $a -eq $b ]]
then
  echo "猜对了"
  break
elif [[ $a -gt $b ]]
then
  echo "猜小了"
elif [[ $a -lt $b ]]
then
  echo "猜大了"
fi
done
​
[root@test2 opt]# sh test1.sh 
输入0-100随机数50
猜小了
输入0-100随机数20
猜小了
输入0-100随机数80
猜大了
输入0-100随机数70
猜大了
输入0-100随机数60
猜大了
输入0-100随机数55
猜对了
输入0-100随机数

买衣服

作业: 例题:购物 逛淘宝选购商品, 每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元), 每次选购完或不买都会提示用户是否继续逛下一家商店, 如果不再继续逛的话进行购物车结算总额。. #!/bin/bash #每家商店有五种商品选购,每次选购完或不买都会提示用户是否继续逛下一家商店, 如果不再继续逛的话进行购物车结算总额。 #衣服500元 #裤子400元 #鞋子300元 #帽子150元 #袜子50元

a=500
b=400
c=350
d=150
e=50
num=0
read -p "是否进入这家店yes/no" n
if [[ "$n" == "yes" ]]
then
echo "a衣服500 b裤子400 c鞋子350 d帽子150 e袜子50"
elif [[ "$n" == "no" ]]
then
echo "出门"
break
fi
​
for ((;;))
do
read -p "选择你要买的商品a b c d e f " w
if [[ $w -eq $a ]] || [[ $w -eq $b ]] || [[ $w -eq $c ]] || [[ $w -eq $d ]] || [[ $w -eq $e ]]
then
num=$(($num+$w))
echo $num
fi
​
if [[ $w -eq $f ]]
then
echo "结账" 
fi
​
read -p "是否进入next家店yes/no" n
if [[ "$n" == "yes" ]]
then
echo "a衣服500 b裤子400 c鞋子350 d帽子150 e袜子50"
elif [[ "$n" == "no" ]]
then
echo "出门"
break
fi
done

猴子吃香蕉

某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾, 又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。 依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了, 请问这只猴子在第一天总共摘了多少根香蕉?

a=1
 for ((day=10; day>1; day--))
do
  a=$[ (a + 1) * 2 ]
done
echo "第一天共摘$a根香蕉"
​
[root@test2 opt]# sh test2.sh 
第一天共摘1534根香蕉

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows搭建nacos集群

Nacos是阿里巴巴的产品&#xff0c;现在是SpringCloud中的一个组件。相比Eureka功能更加丰富&#xff0c;在国内受欢迎程度较高。 下载地址&#xff1a;Tags alibaba/nacos GitHub 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;8888 解压文件夹 目录说明&am…

FPGA - 滤波器 - FIR滤波器设计

一&#xff0c;数字滤波器 滤波器是一种用来减少或消除干扰的器件&#xff0c;其功能是对输入信号进行过滤处理得到所需的信号。滤波器最常见的用法是对特定频率的频点或该频点以外的频率信号进行有效滤除&#xff0c;从而实现消除干扰、获取某特定频率信号的功能。一种更广泛的…

MyBatis 高级映射与延迟加载(分步查询)的详细内容

1. MyBatis 高级映射与延迟加载&#xff08;分步查询&#xff09;的详细内容 文章目录 1. MyBatis 高级映射与延迟加载&#xff08;分步查询&#xff09;的详细内容2. 准备工作3. 多对一 高级映射3.1 第一种方式&#xff1a;级联属性映射3.2 第二种方式&#xff1a;association…

英格索兰IngsollRang控制器过热维修讲解

【英格索兰IngsollRang控制器维修请关注】 【英格索兰IngsollRang控制器维修】 【英格索兰控制器维修】 一、IngsollRang扭矩枪控制器故障诊断 1. 检查环境温度&#xff1a;首先&#xff0c;确认工作场所的温度是否过高。如果环境温度超过设备规定的工作温度&#xff0c;可能…

刷代码随想录有感(102):动态规划——整数拆分

题干&#xff1a; 代码&#xff1a; class Solution { public:int integerBreak(int n) {vector<int>dp(n 1);dp[0] 0;dp[1] 0;dp[2] 1;for(int i 3; i < n; i){for(int j 1; j < i / 2; j){dp[i] max(dp[i], max((j) * (i - j), j * dp[i - j]));}}return…

JavaScript的数组(一维数组、二维数组、数组常用的方法调用)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本&#xff0c;下面的设置用的是另一个版本的&#xff0c;其实是一样。 2、先将Server配好&#xff0c;然后再进行导入操作。 2、选择jdk 当然&#xff0c;这里也可以直接“Download and instal…

无公网IP与服务器完成企业微信网页应用开发远程调试详细流程

文章目录 前言1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 前言 本文主要介绍如何在企业微信开发者中心通过使用内网穿透工具提供的公网域名成功验证回调本地接口服务! …

Solr7.4.0报错org.apache.solr.common.SolrException

文章目录 org.apache.solr.common.SolrException: Exception writing document id MATERIAL-99598435990497269125316 to the index; possible analysis error: cannot change DocValues type from NUMERIC to SORTED_NUMERIC for field "opt_time"Exception writing…

为什么说掌握心理学知识成为产品经理一门必修课?

大家好&#xff0c;我是herosunly。985院校硕士毕业&#xff0c;现担任算法研究员一职&#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名&#xff0c;CCF比赛第二名&#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的…

uniapp地图导航

我们只需要给图标加一个点击事件 我这里的数据都是动态的&#xff0c;想测试的朋友可以写固定值 然后跳转之后首先会调到选择软件导航 点击导航之后会显示使用哪个app 最后我们选择之后将会直接跳转到app进行导航

【启明智显彩屏应用】Model3A 7寸触摸彩屏的充电桩应用方案

一、充电桩概述 &#xff08;一&#xff09;充电桩诞生背景 随着社会的进步和人们生活质量的提升&#xff0c;汽车已逐渐融入每个家庭的日常生活中。然而&#xff0c;汽车数量的激增也带来了严重的环境污染问题&#xff0c;特别是尾气排放。为了应对这一挑战&#xff0c;新能源…

Modbus协议转Profinet协议网关与气体监测系统配置案例

一、背景&#xff1b;Modbus协议和Profinet协议作为工业领域常见的两种通讯协议&#xff0c;各自具有一定的特点和应用范围。Modbus转Profinet网关&#xff08;XD-MDPN100/300&#xff09;在工业自动化控制系统中&#xff0c;可以将Modbus协议转换为Profinet协议&#xff0c;以…

认识线性调频信号(LFM)和脉冲压缩

目录 1. 线性调频&#xff08;LFM&#xff09;信号&#xff1a;2.Matlab仿真3.脉冲压缩 微信公众号获取更多FPGA相关源码&#xff1a; 1. 线性调频&#xff08;LFM&#xff09;信号&#xff1a; 在时域中&#xff0c;一个理想的线性调频信号或脉冲持续时间为T秒&#xff0c;…

加码多肤色影像技术 这是传音找到的“出海利器“?

全球化时代&#xff0c;市场竞争愈演愈烈&#xff0c;产品差异化已然成为了企业脱颖而出的关键。在黄、白肤色长期占据人像摄影主赛道的背景下&#xff0c;传音就凭借独一无二的多肤色影像技术走出非洲&#xff0c;走向了更广阔的新兴市场。 聚焦深肤色人群拍照痛点&#xff0c…

web端使用高德地图

web端使用高德地图 一、申请高德key和秘钥二、在项目中引入所需功能js、css文件三、实现地图选点、回显选点四、自定义地图 一、申请高德key和秘钥 申请高德key 申请成功后可以得到key 二、在项目中引入所需功能js、css文件 <script src"https://webapi.amap.com/m…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】感知器

感知器是一种非常早期的线性分类模型&#xff0c;作为一种简单的神经网络模型被提出。感知器是一种模拟生物神经元行为的机器&#xff0c;有与生物神经元相对应的部件&#xff0c;如权重&#xff08;突触&#xff09;、偏置&#xff08;阈值&#xff09;及激活函数&#xff08;…

在项目中使用Volta控制node版本

在项目中使用Volta控制node版本 前端的技术很多年前就已经是井喷的状态了&#xff0c;基本每一年都有技术的迭代&#xff0c;而node作为前端基石之一也是一年一个样&#xff0c;这就导致了不同年代的版本使用不同的项目会经常出问题&#xff0c;高版本的node无法用于老的项目。…

【设计模式】行为型-模板方法模式

方法千变万化&#xff0c;心灵如潮&#xff0c;模板如画&#xff0c;画出生活的韵味。 文章目录 一、茶与咖啡二、模板方法模式三、模板方法模式的核心组成四、运用模板方法模式五、模板方法模式的应用场景六、小结推荐阅读 一、茶与咖啡 场景假设&#xff1a;我们需要完成茶…

测试开发面经分享,面试七天速成 DAY2

1. TCP和UDP的区别 a. TCP是面向连接的协议&#xff0c;而UDP是无连接的协议。 b. TCP提供可靠的数据传输&#xff0c;保证数据的有序性和完整性&#xff0c;而UDP则不提供这些保证。 c. TCP使用流控制和拥塞控制机制&#xff0c;以确保数据的可靠传输&#xff0c;而UDP没有这…