10 while和unitl循环结构语句

embedded/2025/1/17 13:58:20/

while和unitl循环结构语句

一、循环结构语句

​ Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。

二、详解while循环

​ while循环也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。

​ 计算从1到100所有奇数的和。

sum=0
i=1
while(( i <= 100 ))
dolet "sum+=i"let "i += 2"
done
echo "sum=$sum"

​ 循环控制符break和continue

​ break:在for、while和until循环中break可强行退出循环,break语句仅能退出当前的循环,如果是两层循环嵌套,则需要在外层循环中使用break。

​ 案例:计算机随机生成一个1到10的随机数,最多由用户猜五次看看能猜中?

#!/bin/bash# 生成随机数
r=$(( $RANDOM%10+1 ))i=0
while [ $i -lt 5 ];do# 获取用户输入数字echo -n "请输入:"read userNumif [ $userNum -gt $r ]; thenecho "太大了,再试一次"elif [ $userNum -lt $r ]; thenecho "太小了,再试一次"elseecho "猜对了,$r"# 猜对了,退出循环breakfilet i++
done

​ continue:在for、while和until中用于让脚本跳过其后面的语句,执行下一次循环。

​ 案例: continue用于显示100内能被7整除的数。

#!/bin/bashi=0while [ $i -le 100 ];dolet i++r=$((i%7))if [ $r -eq 0 ];thenecho "$i"continueecho "跳出循环,不显示"fi
done

三、详解until循环

​ until命令和while命令类似,while能实现的脚本until同样也可以实现,但是until与while刚好相反,即whie循环在条件为真时继续执行循环而until则在条件为假时执行循环

until [[ "$i" -gt 5 ]]
dolet "square=i*i"echo "$i * $i = $square"let "i++"
done

http://www.ppmy.cn/embedded/115503.html

相关文章

当Navicat报错 Can not connect to MySQL server的解决方法!

今天运行数据库时突然弹出一个error&#xff1a; 原因&#xff1a;MySQL的服务没有打开&#xff0c;需要检查MySQL的开启状态即可。 具体做法&#xff1a; 1.右键“开始”&#xff0c;点击“计算机管理” 2. 选择“服务和应用程序”&#xff0c;并点击“服务” 3.在服务中找…

Spring Boot 整合 MyBatis 的详细步骤(两种方式)

1. Spring Boot 配置 MyBatis 的详细步骤 1、首先&#xff0c;我们创建相关测试的数据库&#xff0c;数据表。如下&#xff1a; CREATE DATABASE springboot_mybatis USE springboot_mybatisCREATE TABLE monster ( id int not null auto_increment, age int not null, birthda…

【STM32】TIM定时器定时中断与定时器外部时钟的使用

TIM定时器定时中断与定时器外部时钟的使用 一、TIM定时器简介1、TIM&#xff08;Timer&#xff09;定时器2、定时器类型3、高级定时器4、通用定时器5、基本定时器6、定时中断基本结构代码编写&#xff1a;定时中断/外部时钟定时中断 7、预分频器时序8、计数器时序9、计数器无预…

前端基于Rust实现的Wasm进行图片压缩的技术文档

在现代Web开发中&#xff0c;图片压缩是一个常见且重要的需求。随着WebAssembly&#xff08;Wasm&#xff09;技术的成熟&#xff0c;我们可以使用Rust语言编写高性能的图片压缩代码&#xff0c;并将其编译成Wasm模块在前端运行。相对于传统的后端压缩方案&#xff0c;可以减少…

关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求

一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据&#xff0c;一般用来解决大文件下载问题&#xff0c;一般CDN…

Flyway 与 Spring Boot 集成

Flyway 与 Spring Boot 集成 Flyway 是一个流行的数据库版本控制工具&#xff0c;它帮助开发者和运维人员管理数据库模式和数据变更。Flyway 可以自动执行数据库迁移脚本&#xff0c;确保数据库结构在不同环境中的一致性。Spring Boot 与 Flyway 的集成非常紧密&#xff0c;可…

【C语言零基础入门篇 - 16】:栈和队列

文章目录 栈和队列栈栈功能的实现源代码 队列队列功能的实现源代码 栈和队列 栈 什么是栈&#xff1a;功能受限的线性数据结构 栈的特点&#xff1a;先进后出 。例如&#xff1a;仓库进货、出货。 栈只有一个开口&#xff0c;先进去的数据在栈底&#xff08;bottom&#xf…

【linux】df命令

df 命令在 Linux 系统中用于显示磁盘空间的使用情况。它提供了文件系统中各个分区或挂载点的总空间、已用空间、剩余空间以及挂载点等信息。这对于监控和管理磁盘空间非常有用。 基本用法 df [选项] [文件或目录...] 如果不指定文件或目录&#xff0c;df 命令将显示所有当前…