通过猜数字游戏学习Shell脚本的分支、循环文章目录通过猜数字游戏学习Shell脚本的分支、循环一、最基本的猜数字if条件判断1.单分支2.双分支二、增加比大小if多分支三、多次猜测循环1.基础多次循环while循环猜对为止2.多次猜测猜对继续玩3.忽略大小写逻辑运算符4.随机数猜数字RANDOM随机数5.猜数字完整版每次都重新生成随机数继续猜一、最基本的猜数字if条件判断1.单分支#!/bin/bash# 学习目标掌握最基本的if条件判断语法# 知识点变量定义、用户输入、单分支if语句number8# 第一步定义变量存储要猜的数字echoRandom number is$number# 显示答案调试用实际游戏会隐藏echoInput a number in 1-10# 第二步提示用户输入readguess# 第三步读取用户输入存储到guess变量# 第四步单分支if语句 - 最基本的条件判断if[[$guess-eq$number]]# 判断guess是否等于numberthenechoYou are right!# 条件成立时执行猜对了fi# 注意这里只有猜对的情况猜错没有任何反馈# 进步掌握了最基本的if条件判断语法能够判断用户是否猜对数字2.双分支#!/bin/bash# 学习目标掌握if-else双分支结构# 知识点双分支判断、条件不成立时的处理number9echoRandom number is$numberechoInput a number in 1-10readguess# 双分支if语句在单分支基础上增加else处理if[[$guess-eq$number]]thenechoYou are right!# 条件成立猜对了elseechoYou are wrong!# 新增条件不成立猜错了也有反馈fi# 进步在单分支基础上增加了else处理猜错时用户也能得到明确反馈二、增加比大小if多分支#!/bin/bash# 学习目标掌握if-elif-else多分支结构# 知识点多条件判断、比较运算符(-lt小于, -gt大于)、elif用法number9echoRandom number is$numberechoInput a number in 1-10readguess# 多分支if语句提供更详细的反馈if[[$guess-eq$number]];thenechoYou are right!elif[[$guess-lt$number]];then# 新增使用-lt判断是否小于echoYour reply is smaller than the answer.# 提示太小else# 既不等于也不小于那就是大于echoYour reply is bigger than the answer.# 提示太大fi# 进步从简单的对错判断升级到详细的大小提示提供更好的用户体验三、多次猜测循环1.基础多次循环while循环猜对为止#!/bin/bash# 学习目标掌握while循环的基本用法# 知识点while循环、循环条件、循环控制number6guess0# 初始化guess变量echoNew Game!!!echoNumber is$number!echoInput a number in 1-10# 第一步使用while循环实现重复猜测while[[$guess-ne$number]];do# 当guess不等于number时继续循环readguess# 每次循环都读取用户输入if[[$guess-eq$number]];thenechoRight!elif[[$guess-lt$number]];thenechoToo small!elseechoToo big!fidone# 循环结束条件guess等于numberechoGame over!# 循环结束后执行# 进步引入while循环用户可以持续猜测直到猜对游戏体验更完整2.多次猜测猜对继续玩#!/bin/bash# 学习目标掌握while循环实现重复猜测# 知识点while循环、break退出循环、continue继续循环、嵌套if语句number9echoRandom number is$numberechoInput a number in 1-10whiletrue# 第二步使用无限循环通过break控制退出doreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]];thencontinue# 第三步使用continue跳过剩余代码开始下一轮循环elsebreak# 第四步使用break退出整个循环fielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 循环结束后执行# 进步使用无限循环和break/continue控制流程猜对后可以选择继续游戏3.忽略大小写逻辑运算符#!/bin/bash# 学习目标掌握逻辑运算符||的使用# 知识点逻辑或(||)、忽略大小写的用户输入处理number9echoRandom number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readcon# 关键判断使用逻辑或(||)接受y或Y继续游戏# 新增功能忽略大小写提升用户体验if[[$cony]]||[[$conY]];thencontinueelsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步使用逻辑运算符||实现忽略大小写提升用户输入的友好性4.随机数猜数字RANDOM随机数#!/bin/bash# 学习目标掌握使用RANDOM变量生成随机数# 知识点$RANDOM变量、取余运算%、算术表达式$((...))number$((RANDOM%101))# 生成1-10的随机数RANDOM%10得0-91后得1-10echoRandom number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]]||[[$conY]];thencontinueelsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步使用随机数生成数字而非指定数字5.猜数字完整版每次都重新生成随机数继续猜#!/bin/bash# 学习目标实现完整的可重复游戏流程# 知识点游戏状态重置、循环内重新生成随机数、完整游戏逻辑整合number$((RANDOM%101))echoNEW GAME!Random number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]]||[[$conY]];then# 关键改进猜对后重新生成随机数开始新游戏number$((RANDOM%101))echoNEW GAME!Random number is$numberinput a number in 1-10continue# 继续下一轮新数字elsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步每次游戏都生成新的随机数字并且完善了用户提醒
通过猜数字游戏学习Shell脚本的分支、循环编写
发布时间:2026/5/26 22:42:55
通过猜数字游戏学习Shell脚本的分支、循环文章目录通过猜数字游戏学习Shell脚本的分支、循环一、最基本的猜数字if条件判断1.单分支2.双分支二、增加比大小if多分支三、多次猜测循环1.基础多次循环while循环猜对为止2.多次猜测猜对继续玩3.忽略大小写逻辑运算符4.随机数猜数字RANDOM随机数5.猜数字完整版每次都重新生成随机数继续猜一、最基本的猜数字if条件判断1.单分支#!/bin/bash# 学习目标掌握最基本的if条件判断语法# 知识点变量定义、用户输入、单分支if语句number8# 第一步定义变量存储要猜的数字echoRandom number is$number# 显示答案调试用实际游戏会隐藏echoInput a number in 1-10# 第二步提示用户输入readguess# 第三步读取用户输入存储到guess变量# 第四步单分支if语句 - 最基本的条件判断if[[$guess-eq$number]]# 判断guess是否等于numberthenechoYou are right!# 条件成立时执行猜对了fi# 注意这里只有猜对的情况猜错没有任何反馈# 进步掌握了最基本的if条件判断语法能够判断用户是否猜对数字2.双分支#!/bin/bash# 学习目标掌握if-else双分支结构# 知识点双分支判断、条件不成立时的处理number9echoRandom number is$numberechoInput a number in 1-10readguess# 双分支if语句在单分支基础上增加else处理if[[$guess-eq$number]]thenechoYou are right!# 条件成立猜对了elseechoYou are wrong!# 新增条件不成立猜错了也有反馈fi# 进步在单分支基础上增加了else处理猜错时用户也能得到明确反馈二、增加比大小if多分支#!/bin/bash# 学习目标掌握if-elif-else多分支结构# 知识点多条件判断、比较运算符(-lt小于, -gt大于)、elif用法number9echoRandom number is$numberechoInput a number in 1-10readguess# 多分支if语句提供更详细的反馈if[[$guess-eq$number]];thenechoYou are right!elif[[$guess-lt$number]];then# 新增使用-lt判断是否小于echoYour reply is smaller than the answer.# 提示太小else# 既不等于也不小于那就是大于echoYour reply is bigger than the answer.# 提示太大fi# 进步从简单的对错判断升级到详细的大小提示提供更好的用户体验三、多次猜测循环1.基础多次循环while循环猜对为止#!/bin/bash# 学习目标掌握while循环的基本用法# 知识点while循环、循环条件、循环控制number6guess0# 初始化guess变量echoNew Game!!!echoNumber is$number!echoInput a number in 1-10# 第一步使用while循环实现重复猜测while[[$guess-ne$number]];do# 当guess不等于number时继续循环readguess# 每次循环都读取用户输入if[[$guess-eq$number]];thenechoRight!elif[[$guess-lt$number]];thenechoToo small!elseechoToo big!fidone# 循环结束条件guess等于numberechoGame over!# 循环结束后执行# 进步引入while循环用户可以持续猜测直到猜对游戏体验更完整2.多次猜测猜对继续玩#!/bin/bash# 学习目标掌握while循环实现重复猜测# 知识点while循环、break退出循环、continue继续循环、嵌套if语句number9echoRandom number is$numberechoInput a number in 1-10whiletrue# 第二步使用无限循环通过break控制退出doreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]];thencontinue# 第三步使用continue跳过剩余代码开始下一轮循环elsebreak# 第四步使用break退出整个循环fielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 循环结束后执行# 进步使用无限循环和break/continue控制流程猜对后可以选择继续游戏3.忽略大小写逻辑运算符#!/bin/bash# 学习目标掌握逻辑运算符||的使用# 知识点逻辑或(||)、忽略大小写的用户输入处理number9echoRandom number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readcon# 关键判断使用逻辑或(||)接受y或Y继续游戏# 新增功能忽略大小写提升用户体验if[[$cony]]||[[$conY]];thencontinueelsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步使用逻辑运算符||实现忽略大小写提升用户输入的友好性4.随机数猜数字RANDOM随机数#!/bin/bash# 学习目标掌握使用RANDOM变量生成随机数# 知识点$RANDOM变量、取余运算%、算术表达式$((...))number$((RANDOM%101))# 生成1-10的随机数RANDOM%10得0-91后得1-10echoRandom number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]]||[[$conY]];thencontinueelsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步使用随机数生成数字而非指定数字5.猜数字完整版每次都重新生成随机数继续猜#!/bin/bash# 学习目标实现完整的可重复游戏流程# 知识点游戏状态重置、循环内重新生成随机数、完整游戏逻辑整合number$((RANDOM%101))echoNEW GAME!Random number is$numberechoInput a number in 1-10whiletruedoreadguessif[[$guess-eq$number]];thenechoYou are right! Continue?(y/n):readconif[[$cony]]||[[$conY]];then# 关键改进猜对后重新生成随机数开始新游戏number$((RANDOM%101))echoNEW GAME!Random number is$numberinput a number in 1-10continue# 继续下一轮新数字elsebreakfielif[[$guess-lt$number]];thenechoYour reply is smaller than the answer.elseechoYour reply is bigger than the answer.fidoneechoGame over# 进步每次游戏都生成新的随机数字并且完善了用户提醒