条件判断if语句与case语句

2024-06-12 18:28
文章标签 条件 判断 语句 case

本文主要是介绍条件判断if语句与case语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、条件测试

test命令进行条件测试,然后根据返回值来判断条件是否成立。

常用操作符:

-e :既可以测试文件又可以测试目录是否存在

-d :测试目录是否存在

-f :测试文件是否存在

-r :测试当前用户是否对文件/目录有读权限

-w:测试当前用户是否对文件/目录有写权限

-x :测试当前用户是否对文件/目录有执行权限

$?: 返回码,判断命令或者脚本是否执行成功(最近的一条)

0 true为真就是成功,成立

非0 false 失败或者异常

二、比较符

(以下操作符只能用于整数比较)

-eq等于
-ne不等于
-gt大于
-lt小于
-ge大于等于
-le小于等于
                       

 格式:注意空格

[ 3 -eq 5 ]

推荐使用[[ ]]可以使用更高级的模式,可以使用正则表达式,而且在双中括号中,使用字符串的时候可以不加引号

[[ 3 > 5 ]]

(( 3 > 5 )) 

逻辑与和逻辑或

与:&& 条件都要满足才成立 也可以使用-a [ 2 -ne 1 ] && [ 2 -ne 3] 或者 [2 -ne 1 -a 2 -ne 3 ]

或:|| 有一个条件满足才成立 也可以使用-o [ 2 -ne 1 ] || [ 2 -ne 3] 或者 [2 -ne 1 -o 2 -ne 3 ]

但当是[[]]的时候需要注意 [[ 1 -gt 4 && 1 -eq 5 ]]

三、if语句

单分支结构:

if      #条件判断,后面是条件测试语句then    #满足执行,命令序列,只有条件测试成功语句成立,才会执行then的命令模块
fi      #结束语句

双分支结构:

if      #条件判断,后面是条件测试语句then    #满足执行,命令序列,只有条件测试成功语句成立,才会执行then的命令模块
esle    #不满足执行else 执行完毕,语句结束
fi      #结束语句

 双分支结构:

if []then命令序列elif []then命令序列elif []then命令序列else命令序列fi

例如:

read -p "请输入你的分数:" fenshu
if [ $fenshu -eq $fenshu ] &> /dev/null       #/dev/null表示将冗余信息放进黑洞文件
thenif [[ $fenshu -ge 85 && $fenshu -le 100 ]]thenecho "优秀"elif [[ $fenshu -ge 70 && $fenshu -le 84 ]]thenecho "一般"elif [[ $fenshu -ge 60 && $fenshu -le 69 ]]thenecho "合格"elseecho "抄写30遍"fi
elseecho "输入错误,不是整数"
fi

四、 case语句

case语句 相当于多分支结构

case  变量值 in模式1)命令序列;; #终止case选项模式2)命令系列;;。。。。。。。。。。。*)命令序列esac

这篇关于条件判断if语句与case语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054993

相关文章

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。

【Python如何输入升高和体重判断你是偏胖还是偏瘦】

1、求体质指数得Python代码如下: # BMI(Body Mass Index)指数:简称体质指数,# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。# 常用指标:BMI<18.5 偏瘦 18.5<=MBI<=24 正常 MBI>24 偏胖# 计算公式:BMI=体重kg/身高的平方ma = eval(input("请输入你的体重(kg):")) # 输入体重b = e

算法11—判断一个树是不是二叉查询树

问题: 给定一个二叉树,判断它是否是二叉查询树。 思路: 要判断是否是二叉查询树,标准就是看每一个节点是否满足:1、左节点及以下节点的值比它小;2、右节点及以下节点的值比它大。当然,前提是子节点都存在的情况。所以,我们需要从根节点不断向下递归,只要所有节点都满足,那么就是BST,否则,就不是。 代码: [java]  view plain copy pri

算法7— 判断一个单链表是否有环,如果有,找出环的起始位置

第一种方法是从单链表head开始,每遍历一个,就把那个node放在hashset里,走到下一个的时候,把该node放在hashset里查找,如果有相同的,就表示有环,如果走到单链表最后一个node,在hashset里都没有重复的node,就表示没有环。 这种方法需要O(n)的空间和时间。 第二种方法是设置两个指针指向单链表的head, 然后开始遍历,第一个指针走一步,第二个指针走两步,如果没

算法6— 判断两个链表是否相交

问题: 给出两个单向链表的头指针,比如h1、h2,判断链表是否相交,如果不相交返回NULL;如果相交,返回指向第一个相交节点的指针。时间复杂度控制在O(n)。 分析: 如果两单向链表相交的话,一定是Y型相交,不可能出现X型,弄清楚这点后接下来的工作就是: (1)先找到h1,h2的最后一个节点L1和L2,同时记录节点数量a,b;(这里假设 a > b) (2)判断最后一个节点是否相同

MySQL——Insert语句详解

语法: INSERT INTO 表名([字段名1,字段名2,字段名3])VALUES('值1'),('值2'),('值3'),······  注意事项: ·  字段和字段之间,使用英文逗号隔开 ·  字段是可以省略的,但是后面的值必须一一对应,不能少 ·  可以同时插入多条数据,VALUES后面的值,需要使用逗号隔开    VALUES( ) , ( ) 代码演示: --

线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))

1通信机制:互斥与同步 线程的互斥通过线程的互斥锁完成; 线程的同步通过无名信号量或者条件变量完成。 2  互斥 2.1 何为互斥?         互斥是在多个线程在访问同一个全局变量的时候,先让这个线程争抢锁的资源,那个线程争抢到资源,它可以访问这个变量,没有争抢到资源的线程不能够访问这个变量。那这种只有一个线程能够访问到这个变量的现象称之为线程间互斥。 2.2互斥锁API 1.

如何判断和处理.DS_Store文件

在Mac上经常会遇到.DS_Store文件,.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini.那么在使用os.listdir(path)等函数对文件进行操作的时候就会出现invalid literal for int() with base 10 错误。这是因为.DS_Store文件也会包含进去

力扣SQL50 销售分析III having + 条件计数

Problem: 1084. 销售分析III 👨‍🏫 参考题解 Code select s.product_id,p.product_namefrom sales s left join product pon s.product_id = p.product_idgroup by product_idhaving count(if(sale_date between