循环 -控制语句

news2024/11/8 23:31:30

循环

循环是什么

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

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

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

循环和遍历

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

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

循环是操作

遍历是输出

循环的作用

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根香蕉

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

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

相关文章

抖店被扣保证金,做起来太难导致心态崩了,怎么办?

我是王路飞。 技术、黑科技这些东西&#xff0c;决定不了你做店的结果。 能够决定最终结果的&#xff0c;一定是心态&#xff0c;是乐观还是悲观&#xff1f;是自负还是自卑&#xff1f;是焦躁还是踏实&#xff1f;这很关键。 店铺被扣保证金了&#xff0c;感觉没希望了&…

Arduino 项目:太阳能跟踪器

在本文中&#xff0c;您将逐步学习如何使用 光敏电阻和舵机制作双轴太阳能跟踪器 Arduino 项目。在这个项目中&#xff0c;我们将使用一些光敏传感器来跟踪阳光&#xff0c;并将利用舵机将太阳能电池板引导到可提高其效率的区域。 此项目所需的组件 序号部件名称描述数量备注…

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

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

2024酒店IPTV云桌面系统建设方案

Hello大家好&#xff0c;我是点量小芹&#xff0c;这一年多的时间一直在分享实时云渲染像素流相关的内容&#xff0c;今天和大家聊聊酒店IPTV云桌面电视系统解决方案&#xff0c;或者有的朋友也会称之为IPTV服务器。熟悉小芹的朋友知道&#xff0c;IPTV软件系统是我们一直在推的…

C++迈向精通:当我尝试修改虚函数表

尝试修改虚函数表 本期纯整活儿好吧&#xff01;&#xff01;&#xff01;&#xff01; 初衷 有一天我突然开始好奇虚函数表是否真的存在&#xff0c;于是我开始想是否能够从C中查看或者调用虚函数表中的内容。&#xff0c;于是有了下面的操作。 操作过程 起初我并没有思路…

gridview的模板按钮如何判断用户点击的是哪一行

在asp.net的 GridView 控件中&#xff0c;判断用户点击的是哪一行通常可以通过处理 GridView 的 RowCommand 事件来实现。RowCommand 事件会在 GridView 的每个按钮&#xff08;除非另有指定的CommandName&#xff09;被点击时触发&#xff0c;并且事件参数中包含了足够的信息来…

基于redis的分布式锁

一、redis分布式锁基本信息 1.详细讲解&#xff1a; Redis 分布式锁是一种用于控制分布式系统中多个进程对共享资源的并发访问的机制。通过 Redis 的原子操作和过期时间功能&#xff0c;可以实现一个简单而有效的分布式锁。接下来&#xff0c;我们将详细介绍其工作原理、基本…

杨氏矩阵和杨辉三角的空间复杂度较小的解题思路

文章目录 题目1 杨氏矩阵题目2 杨辉三角 题目1 杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N); 思路: 我们可以通过题目…

springboot SSM 宠物医院管理系统(源码+论文)

绪论 1.1 计算机管理信息系统的发展情况 1958 年美国首先提出了 “管理信息系统 ”&#xff08;即 MIS&#xff1a;Management Information Systems&#xff09;&#xff0c;从而也引出了另外一个概念 ——“管理信息系统 ”。综合其多种定义以及根据在实际中的应用&#xff…

C语言| 数组

直接定义一个数组&#xff0c;并给所有元素赋值。 数组的下标从0开始&#xff0c;下标又表示数组的长度。 【程序代码】 #include <stdio.h> int main(void) { int a[5] {1, 2, 3, 4, 5}; int i; for(i0; i<5; i) { printf("a[%d] %d\…

HSP_08章 断点调试

P100 断点调试 1. 基本介绍 一个实际场景 在开发中&#xff0c;新手程序员在查找错误时&#xff0c;这时有经验的程序员就会提示&#xff0c;可以用断点调试&#xff0c;一步一步的看源码执行的过程, 从而发现错误所在。 断点调试介绍 -基本介绍 2. 函数的调试

在不使用js在情况下只用css实现瀑布流效果

使用到的是grid 布局&#xff0c;需要注意的是grid-template-rows: masonry; 目前只有Firefox 浏览器支持这个效果&#xff0c;而且还是一个实验性属性需要在设置里面开发实验性选项才行。 实例 <!DOCTYPE html> <html> <head><title>Document</ti…

某国资集团数据治理落地,点燃高质量发展“数字引擎”

​某国有资产经营控股集团为快速提升集团的内控管理能力和业务经营能力&#xff0c;以数字化促进企业转型的信息化建设势在必行。集团携手亿信华辰开启数据治理项目&#xff0c;在数据方面成功解决“哪里来、怎么盘、怎么管、怎么用”的问题&#xff0c;不断推动企业数字化转型…

焦化行业排放平台简介

在当今社会&#xff0c;环保事业日益受到人们的关注。焦化行业作为重要的工业领域之一&#xff0c;其排放问题一直是环保工作的重点。为了有效控制焦化行业的排放&#xff0c;实施焦化行业排放平台成为了必不可少的措施。朗观视觉小编将详细探讨焦化行业排放平台的实施范围&…

vue技巧(十)全局配置使用(打包后可修改配置文件)

1、背景 vue打包目前主流用的有webpack和vite两种&#xff0c;默认用的webpack。&#xff08;二者的区别大家可以各自上网查&#xff0c;我没用过vite&#xff0c;所以不过多介绍&#xff09;vue通过webpack打包后&#xff0c;源码会被压缩&#xff0c;但一些关键配置可…

YOLOv10在RK3588上的测试(进行中...)

1.代码源 国内镜像站在gitcode。这个镜像站也基本上包含了github上常用项目的镜像。然后它的主发布源在这里&#xff1a; GitCode - 全球开发者的开源社区,开源代码托管平台 yolov10是清华主导做的... 然后&#xff0c;在维护列表里看到了这个&#xff1a; 2024年05月31日&am…

前端项目打包部署

打包 vue-cli脚手架的前端项目&#xff0c;点击npm脚本中的第二条编译命令&#xff0c;即可将项目编译&#xff0c;生成一个dist的文件夹&#xff0c;里面存放的就是编译好的前端项目文件&#xff0c;没有脚手架就在终端敲击npm run build命令编译前端项目 部署 Nginx 介绍:…

centos7 最简单方式安装xfce 4桌面环境

本快速指南将介绍如何在CentOS 7上安装Xfce桌面&#xff0c;该桌面将提供用于Linux系统的GUI。 Xfce是一个用于Unix之类的轻量级桌面环境&#xff0c;类似于操作系统&#xff0c;其目标是快速而又节省系统资源。 首先&#xff0c;我们需要配置EPEL存储库&#xff0c;因为这是…

Calibre版图验证工具调用_笔记

Siemens EDA Calibre版图验证工具调用 采用Cadence Virtuoso Layout Editor直接调用Siemens EDA Calibre工具需要进行文件设置&#xff0c; 在用户的根目录下&#xff0c;找到.cdsinit文件&#xff0c; 在文件的结尾处添加以下语句即可&#xff0c;其中&#xff0c;calibre.skl…

Kafka多维度调优

优化金字塔 应用程序层面 框架层面&#xff08;Broker层面&#xff09; JVM层面 操作系统层面 应用程序层面&#xff1a;应当优化业务代码合理使用kafka&#xff0c;合理规划主题&#xff0c;合理规划分区&#xff0c;合理设计数据结构&#xff1b; 框架层面&#xff1a;在不…