case语句
mysql中case的用法
mysql中case的用法MySQL中的CASE语句用于根据指定条件返回不同的结果。
它类似于其他编程语言中的switch语句。
CASE语句有两种格式,简单CASE函数和CASE函数。
一、简单CASE函数简单CASE函数格式如下:CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE else_resultEND该格式中,expression是一个要比较的表达式,value1、value2等是用于比较的取值,result1、result2等是与取值匹配时返回的结果,else_result是当没有匹配的取值时返回的结果。
例如,我们有一张名为student的学生表,包含id、name和score 字段,如下所示:id , name , score----,--------,-------1 , Alice , 802 , Bob , 603 , Charlie, 90我们可以使用以下查询语句根据学生分数的不同返回不同的等级:SELECT name,CASEWHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'WHEN score >= 70 THEN 'C'ELSE'D'END AS gradeFROM student;以上查询语句的结果为:name , grade--------,------Alice , BBob , DCharlie , A二、CASE函数CASE函数格式如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE else_resultEND该格式中,condition1、condition2等是用于判断的条件,result1、result2等是当条件满足时返回的结果,else_result是当没有满足的条件时返回的结果。
case语句
case语句case语句是多分⽀选择语句,if语句只有两个分⽀可供选择,⽽实际问题中常常需要⽤到多分⽀选择结构。
例如,学⽣成绩分类(90分以上为A,……);⼈⼝统计分类(按年龄分为⽼、中、青、少、幼)等。
当然这些都可以⽤if语句的嵌套形式来实现,但如果分⽀较多,则嵌套的if语句层数太多,程序冗长⽽降低了可读性,也给修改带来了极⼤的困难。
Pascal语⾔提供了case语句可直接处理多分⽀选择,case语句由⼀个选择表达式和众多可选择的操作序列组成,运⾏时根据表达式的求值结果,在众多的分⽀中选取⼀个分⽀执⾏。
case语句的⼀般形式如下:case 表达式 of常数表1: 语句1;常数表2: 语句2;常数表3: 语句3;… …常数表n: 语句n;else 语句n+1;end;说明:1、case的英⽂意义有“情况”、“情形”之意,我们可能这样理解case语句:当表达式的值与常数表中某⼀值相匹配,则执⾏其后⾯的相应语句;如果常数表中没有与表达式相匹配的常数,则执⾏else后⾯的相应语句。
2、else可以省略,此时若⽆与表达式的值相匹配的常数表时程序将向下运⾏并跳出case语句。
3、保留字end与保留字case成对出现,这个end表⽰case语句的结束。
4、表达式的类型通常是整形与字符型,也可以是枚举型和⼦界型5、常数表是⼀个或⼀组常量,其类型与表达式类型⼀致,常数表⾏的次序是任意的,不⼀定要按从⼩到⼤或从⼤到⼩的次序排列,通常表可能性⼤的常数表列于前⾯,以加快程序运⾏的速度。
例1:输⼊⼀个个位数字,输出这个数字的英⽂拼法varn:byte;beginwrite('Input the number: ');readln(n);case n of0: writeln('Zero');1: writeln('One');2: writeln('Two');3: writeln('Three');4: writeln('Four');5: writeln('Five');6: writeln('Six');7: writeln('Seven');8: writeln('Eight');9: writeln('Nine');end;end.例2:输⼊⼆个实数及运算符,输出它们的和、差、积、商vara,b,w:real;op:char;beginwrite('Input a,b: ');readln(a,b);write('Input operator: ');readln(op);case op of'+': w:=a+b;'-': w:=a-b;'*': w:=a*b;'/': w:=a/b;end;writeln(w:0:2);end.例3:根据学⽣的成绩给予相应的分数等级,对应关系如下:90-100 A;80-89 B;60-79 C;60分以下 Dvars:byte;ch:char;beginwrite('Input the score: ');readln(s);case s div 10 of10,9: ch:='A';8: ch:='B';7,6: ch:='C';else ch:='D';end;writeln(s,'-->',ch);end.作业:1、zerojudge:a053、d460、a2442、输⼊年、⽉,输出该⽉的天数。
case循环语句实例
case循环语句实例
嘿,咱今儿就来好好唠唠这 case 循环语句实例!你知道吗,这就好比是一个超级智能的导航系统。
比如说你要去一个地方,它能根据不
同的情况给你指出不同的路线。
咱先来看个简单的例子哈。
就好比你有一堆不同颜色的球,红色、
蓝色、绿色啥的。
然后你要用 case 循环语句来处理它们。
比如说,遇
到红色球就做一件事,遇到蓝色球就做另一件事。
哎呀,这多有意思啊!就好像你是个指挥官,那些球就是你的小兵,你指挥它们干啥它们就得干啥。
再举个复杂点的例子,比如在一个游戏里,根据玩家的不同操作,
程序要做出不同的反应。
这不就是 case 循环语句大显身手的时候嘛!
你想想看,要是没有它,那程序得多混乱啊!简直不敢想象!它就
像一个贴心的小助手,帮你把一切都安排得妥妥当当的。
那你说,这 case 循环语句是不是超级重要?它让我们的程序变得更智能、更灵活!它能处理各种复杂的情况,让一切都有条不紊地进行着。
我觉得啊,case 循环语句就是编程世界里的一颗璀璨明星!没有它,编程可就少了好多乐趣和效率呢!咱可得好好掌握它,让它为我们的
编程之路增添光彩呀!。
sqlcase语句用法
sqlcase语句用法SQL的CASE语句是一种在查询时使用的条件语句。
它允许开发人员根据特定的条件,根据不同的结果执行不同的操作。
CASE语句类似于其他编程语言中的switch语句,但其语法和用法略有区别。
CASE语句可以分为两种类型:简单CASE表达式和搜索CASE表达式。
简单CASE表达式的语法如下:CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE resultEND在这种情况下,表达式将与每个WHEN子句中指定的值进行比较,如果匹配,则返回相应的结果。
如果没有任何匹配项,它将返回ELSE 子句中指定的结果。
如果没有ELSE子句,则返回NULL。
以下是一个简单的CASE语句的示例:SELECT employee_id, last_name,CASE department_idWHEN 10 THEN 'Administration'WHEN 20 THEN 'Marketing'WHEN 30 THEN 'Sales'ELSE 'Other'ENDFROM employees;这个示例中,我们根据不同的department_id值返回不同的部门名称。
如果department_id为10,则返回"Administration",如果department_id为20,则返回"Marketing",如果department_id为30,则返回"Sales",对于其他任何department_id值,我们将返回"Other"。
搜索CASE表达式的语法如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE resultEND在这种情况下,每个WHEN子句中的条件将被评估,如果满足条件,则返回相应的结果。
汇川case语句用法
汇川case语句用法汇川case语句用法在编程中,case语句是一种实现多分支选择的控制流结构。
case语句通常用于针对不同的值执行不同的操作。
在汇川开发中,也存在着使用case语句的一些常见用法。
下面将列举一些用法并进行详细讲解。
1. 单个条件判断使用case语句进行单个条件判断时,通常会使用when关键字。
示例如下:case variablewhen value1# 执行操作1when value2# 执行操作2when value3# 执行操作3else# 执行默认操作end•variable是需要进行判断的变量。
•value1、value2、value3是可能的取值。
•# 执行操作1、# 执行操作2、# 执行操作3是根据不同取值执行的操作。
•# 执行默认操作是当变量的值不匹配任何已定义的取值时执行的操作。
2. 多个条件判断在某些情况下,需要对多个条件进行判断,并执行相应的操作。
可以使用case语句的多个when子句来实现。
示例如下:case variablewhen value1# 执行操作1when value2, value3# 执行操作2when value4# 执行操作3else# 执行默认操作end•value1、value2、value3、value4是可能的取值。
•# 执行操作1、# 执行操作2、# 执行操作3是根据不同取值执行的操作。
•# 执行默认操作是当变量的值不匹配任何已定义的取值时执行的操作。
3. 正则表达式匹配除了可以进行精确的取值判断外,case语句还可以用于正则表达式匹配。
示例如下:case variablewhen /pattern1/# 执行操作1when /pattern2/# 执行操作2else# 执行默认操作end•/pattern1、/pattern2是正则表达式模式。
•# 执行操作1、# 执行操作2是根据匹配结果执行的操作。
•# 执行默认操作是当变量的值不匹配任何已定义的正则表达式时执行的操作。
case语句
case语句case语句1.什么是casecase语句和if类似,也是⽤来判断,只不过当判断条件较多时,使⽤case语句会⽐if更加⽅便2.case使⽤场景在⽣产环境中我们总会遇到⼀个问题需要根据不同预案,那么我们要处理这样的问题⾸先要根据可能出现的情况写出对应的预案,然后根据选择来加载不同的预案⽐如服务的启停脚本,我们⾸先要写好启动,停⽌重启的预案,然后根据不同的选择来加载不同的预案3.case基础语法case 变量 in条件 1)执⾏代码块1;;条件 1)执⾏代码块2;;条件 1)执⾏代码块3;;条件 1)执⾏代码块4;;*)不匹配后命令序列esac1. case演⽰⽰例:需求2:使⽤case实现nginx状态监控脚本。
stub_statussh nginx_status.shUSAGE nginx_status.sh { Active | accepts | handled | requests | Reading | Writing |Waiting }1.nginx开启状态监控[root@manager case]# cat /etc/nginx/conf.d/test.confserver {listen 80;server_name ;location / {index index.html;}location /nginx_status {stub_status;}}3.case[root@manager case]# cat case-5.sh#!/bin/bash# Author: QQ: 552408925# Date: 2019-10-30# FileName: case-5.sh# URL: https://# Description:HostName=Nginx_status_file=nginx.statusNginx_Status_Path=nginx_statuscurl -sH Host:${HostName} http://127.0.0.1/${Nginx_Status_Path} >${Nginx_status_file}case $1 inactive)echo $(( $(awk '/Active connections/ {print $NF}' ${Nginx_status_file}) -1 ));;accepts)echo $(( $(awk 'NR==3 {print $1}' ${Nginx_status_file}) -1 ));;handled)echo $(( $(awk 'NR==3 {print $2}' ${Nginx_status_file}) -1 ));;requests)echo $(( $(awk 'NR==3 {print $3}' ${Nginx_status_file}) -1 ));;*)echo "USAGE: $0 { active | accepts | handled | requests | Reading | Writing | Waiting }" exit 1esacNgixn启停脚本#!/bin/bash# Author: QQ: 552408925# Date: 2019-10-30# FileName: case-4.sh# URL: https://# Description:source /etc/init.d/functionsnginx_pid=/var/run/nginx.pidcase $1 instart)if [ -f $nginx_pid ];thenif [ -s $nginx_pid ];thenaction "Nginx 已经启动" /bin/falseelserm -f $nginx_pidsystemctl start nginx &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx启动成功" /bin/trueelseaction "Nginx启动失败" /bin/falsefifielsesystemctl start nginx &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx启动成功" /bin/trueelseaction "Nginx启动失败" /bin/falsefifi;;stop)if [ -f $nginx_pid ];thensystemctl stop nginx && \rm -f $nginx_pidaction "Nginx is stopped" /bin/trueelseecho "[error] open() "$nginx_pid" failed (2: No such file or directory)"fi;;status)if [ -f $nginx_pid ];thenecho "nginx (pid $(cat $nginx_pid)) is running..."elseecho "nginx is stopped"fi;;reload)#1.nginx没有启动直接报错#2.nginx启动了,先检查配置⽂件语法#如果nginx语法没问题,则reload#如何nginx语法有问题#提⽰⽤户是否进⼊对应的错误⾏数修改 [ y | n ]# y 进⼊修改# n 退出操作if [ -f $nginx_pid ];thennginx -t -c /etc/nginx/nginx.conf &>nginx.errrc=$?if [ $rc -eq 0 ];thenaction "Nginx is Reloaded" /bin/trueelsengx_conf=$(cat nginx.err |awk -F "[ :]" 'NR==1 {print $(NF-1)}')ngx_line=$(cat nginx.err |awk -F "[ :]" 'NR==1 {print $NF}')read -p "是否进⼊ ${ngx_conf} 配置⽂件的 ${ngx_line} ⾏修改: [ y | n ] " tt case $tt iny)vim $ngx_conf +${ngx_line};;n)exit 1esacfielseaction "Nginx 没有启动" /bin/falsefi;;*)echo "USAGE: $0 {start|stop|status|restart}"exit 1esac。
case语句
case语句⼀case条件语句case条件语句相当于多分⽀的if/elif/else条件语句,但是它看起来更规范更⼯整,常被应⽤于实现系统服务启动脚本等企业应⽤场景中。
在case语句中,程序会将case获取的变量的值与表达式部分的值1、值2、值3等逐个进⾏⽐较。
如果获取的变量值和某个值(例如值1)相匹配,就会执⾏值(例如值1)后⾯对应的指令(例如指令1,其可能是⼀组指令),直到执⾏到双分号(;;)才停⽌。
然后再跳出case语句主体,执⾏case语句(即esac字符)后⾯的其他命令。
如果没有找到匹配变量的任何值,则执⾏"*)"后⾯的指令(通常是给使⽤者的使⽤提⽰),直到遇到双分号(;;) (此处的双分号可以省略)或esac结束。
这部分相当于if多分⽀语句中最后的else语句部分。
另外, case语句中表达式对应值的部分,还可以使⽤管道等更多功能来匹配。
(⼀)case语句的语法适合判断变量值case 变量引⽤ inPAT1/值1)分⽀1/指令1;;PAT2/值2)分⽀2/指令2;;...*)默认分⽀;;esaccase条件语句的执⾏流程逻辑图:说明:当变量的值等于值1时,执⾏指令1;等于值2时执⾏指令2,以此类推;如果都不符合,则执"*)"后⾯的指令。
此外,注意不同⾏内容的缩进距离。
(⼆)case⽀持glob风格的通配符*: 任意长度任意字符: 任意单个字符[ ]:指定范围内的任意单个字符a|b: a或b注意变量引⽤就是带$变量的名称。
如果第1个模式不匹配就继续执⾏第2个模式的代码。
*相当于else操作,表⽰的任意的字符串。
满⾜*就执⾏默认分⽀的操作。
默认分⽀后⾯的两个分号可以不写的。
[root@centos7 ~]# type casecase is a shell keyword[root@centos7 ~]# help casecase: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esacExecute commands based on pattern matching.Selectively execute COMMANDS based upon WORD matching PATTERN. The`|' is used to separate multiple patterns.也就是表⽰或的关系Exit Status:Returns the status of the last command executed.使⽤case写脚本判断变量是否是离散值如果变量num的值是1,2,3那么就执⾏某个命令cmd1。
选择结构case语句
例一: 输入年、月,输出该月的天数
讨论:每年的1、3、5、7、8、10、12月,每月有31天; 4、6、9、11月,每月有30天; 2月,若是闰年有29天,平年有28天。
闰年是指年份能被4整除,但不能被100整除,或者年份能被 400整除的年。 设:年year 月month 每月天数days
判断闰年表达式:
read(year,month); case month of
1,3,5,7,8,10,12:days:=31; 4,6,9,11:days:=30; 2:if (year mod 4=0) and (year mod 100<>0) or (year mod 400=0)
then days:=29 e9;,year,' month=',month,' days=',days) end.
2.计算days
根据month的值选择计算
1,3,5,7,8,10,12:days:=31
4,6,9,11:
days:=30
2:
if 闰年 then days:=29 else days:=28
3.输出year,month,days
例一:输入年、月,输出该月的天数
Program monthdays(input,output); var year,month,days:integer; begin
(year mod 4=0) and (year mod 100<>0) or (year mod 400=0)
例一:输入年、月,输出该月的天数
一级算法: 1.输入year,month 2.计算days 3.输出year,month,days
例一:输入年、月,输出该月的天数
case语句
Case语句Case语句也是条件判断语句的一种,可以完成比if语句更强的判断。
在if语句中,如果需要判断的条件很多的话,将会用到大量的if嵌套,例如:Use NorthwindDeclare @price moneySelect @price = 单价From 产品Where 产品名称=N’番茄酱’If @price<$20Print ‘番茄酱的单价低于20元’ElseBeginIf $20<=@price and @price<40Print ‘番茄酱的单价在20元与40元之间’ElseBeginIf $40<=@price and @price<=80Print ‘番茄酱的单价在40元与80元之间’ElsePrint ‘番茄酱的单价大于80元’EndEnd从以上代码可看出,判断的条件越多时,用if语句的嵌套就越多,代码看起来就越乱越复杂,可读性就越差。
使用case语句可以轻松解决该问题。
Case语句的语法代码有两种格式:1.简单的case代码,用于将某个表达式与一组简单的表达式进行比较以确定结果2.搜索的case代码,用于计算一组布尔表达式已确定结果语法如下:1.简单的case代码:Case input_expressionWhen when_expression Then result_expression[……][Else else_result_expression]End2.搜索的case代码CaseWhen Boolean_expression Then result_expression[……][Else else_result_expression]End在简单的case语句中,系统会将input_expression的值与每一个when_expression的值作比较。
如果相同,返回then语句之后的表达式;如果都不相同,返回else语句之后的表达式;如果没有else语句,则返回null。
case语句用法举例说明
case语句用法举例说明
1. 嘿,你知道吗?当要根据不同情况执行不同操作的时候,case 语句
可就太好用啦!就像你去餐厅点餐,不同的菜品对应不同的做法,这 case
语句就像是那个决定怎么做菜的关键呢!比如根据用户输入的数字1、2、3,来执行不同的输出操作。
2. 哇塞,case 语句真的是超级灵活呀!可以像变魔术一样根据不同的条件
玩出各种花样呢!比如说根据天气是晴天、阴天还是雨天,来安排不同的活动,这多有趣呀!就好像一场奇妙的冒险。
3. 哎呀呀,case 语句简直是编程世界里的小精灵呀!你想想看,好比在游
戏里根据不同的关卡选择不同的策略,多有意思!例如根据分数的不同档次来给予不同的奖励。
4. 嘿哟,case 语句可太强大啦!这就像是走迷宫时有了不同的路线指引呢!比如根据不同颜色的信号灯来决定是前进、停止还是转弯。
5. 哇哦,case 语句在处理多种情况时可真是一把好手呀!这不就跟你根据
不同的心情选择听不同类型的音乐一样嘛!像是根据不同的季节开展不同的活动项目。
6. 哈哈,case 语句真的超有趣呢!可以想象成是选衣服呀,不同的场合穿
不同的衣服,多棒!比如根据时间是上午、下午还是晚上来安排不同的任务。
7. 哎哟喂,case 语句太有用了呀!简直就是解决复杂问题的小能手呢!就好像根据不同的交通工具来选择不同的出行路线一样。
例如根据不同的用户类型给予不同的权限。
8. 呀,case 语句真的是让人又爱又惊喜呀!这不就像是在众多礼物中挑选适合自己的那个嘛!比如根据不同的节日来准备不同的庆祝方式。
我的观点结论就是:case 语句是编程中非常实用且有趣的工具,好好运用它能让我们的程序变得更加精彩和灵活呢!。
case多条语句
case多条语句
在编程中,case语句通常用于基于某个变量的不同值执行不同的操作。
当需要执行多条语句时,可以在case块中添加这些语句。
以下是一个示例:
python复制代码
variable = 1
case variable:
when 1:
# 当variable 为1 时执行以下多条语句
statement1
statement2
statement3
when 2:
# 当variable 为2 时执行其他多条语句
statementA
statementB
statementC
else:
# 当variable 的值不是1 或2 时执行其他语句
statementX
在上面的示例中,当variable的值为 1 时,会执行statement1、statement2和statement3这三条语句。
当variable的值为 2 时,会执行statementA、statementB和statementC这三条语句。
对于其他值,将执行statementX这条语句。
请注意,上述示例中的代码是伪代码,具体语法和用法可能会因编程语言而有所不同。
你需要根据所使用的编程语言进行适当的调整。
case语句结构
case语句结构
嘿,你知道吗,case 语句结构就像是一个超级智能的导航系统!比
如说,你要去一个陌生的地方,case 语句就像是给你规划好了各种不
同的路线。
当程序遇到一个情况,就好像你站在一个岔路口,不知道该走哪条路。
这时候 case 语句就发挥作用啦!它会根据不同的条件,就像不同
的路牌一样,指引程序走向正确的方向。
比如说,“如果是这种情况,那就执行这个操作;要是那种情况,
就执行那个操作”,这不就和你看到路牌上写着“向左走是公园,向右
走是商场”一个道理嘛!
想象一下,程序就像一辆车,case 语句就是那个掌控方向的司机。
它能快速准确地判断该往哪走,多厉害呀!
再打个比方,case 语句就像是一个魔法盒子,里面装满了各种奇妙
的指令。
当程序需要做出决策的时候,它就会从盒子里拿出对应的魔
法指令来执行。
哎呀,你想想,如果没有 case 语句,程序不就像没头苍蝇一样乱撞啦!那可不行,会出大乱子的呀!
我觉得 case 语句结构真的是超级重要的呀,它让程序变得更加智能、有序,就像给程序安上了一双敏锐的眼睛和一个聪明的大脑!它能帮
助程序在复杂的情况中找到正确的路,让一切都变得井井有条。
所以呀,我们一定要好好掌握 case 语句结构呀!。
c语言中case语句的用法及规则
文档标题:C语言中CASE语句的用法及规则一、简介在C语言中,`switch`语句是一种多路选择结构,它允许程序根据一个表达式的值进行多种情况的匹配和处理。
`switch`语句后跟随一个括号,括号中是用于比较的表达式或变量。
每个`case`关键字后跟随一个整数值或字符,表示可能的表达式结果。
下面我们将详细介绍`case`语句的用法及规则。
二、语法结构1. `switch`语句后跟随一个括号,括号中是用于比较的表达式或变量。
2. 每个`case`关键字后跟随一个整数值或字符,表示可能的表达式结果。
3. `case`后面的值必须是常量,而且必须是整数或字符。
4. `case`后面跟的值必须是不相等的,否则多个`case`可以匹配到同一个值。
5. 每个`case`语句必须以`break`关键字结束,否则会发生连续执行,即一旦匹配某个`case`,后续的所有`case`都会被执行,直到遇到`break`为止。
6. 有一个可选的`default`语句,用于处理未匹配到任何`case`的情况。
三、使用示例下面是一个使用`case`语句的示例代码:```c#include <stdio.h>int main() {int num = 2;switch (num) {case 1:printf("Number is 1\n");break;case 2:printf("Number is 2\n");break;case 3:printf("Number is 3\n");break;default:printf("Number is not 1, 2, or 3\n");break;}return 0;}```在这个示例中,根据变量`num`的值,程序会匹配相应的`case`并执行相应的操作。
如果`num`的值为1,程序会输出"Number is 1",如果`num`的值为2,程序会输出"Number is 2",以此类推。
sql中case语句的用法
sql中case语句的用法SQL中Case语句的用法1. 概述在SQL中,Case语句是一种条件表达式,用于根据给定的条件执行不同的操作。
它类似于编程语言中的if-else语句,可以根据不同的条件进行分支处理。
2. 简单形式的Case语句简单形式的Case语句是最基本的形式,它根据给定的表达式的值来判断执行哪个分支。
下面是一个简单的例子:SELECT column1, column2,CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE resultENDFROM table;•column1, column2:要返回的列名•condition1, condition2:可选的条件表达式•result1, result2:对应条件为真时返回的结果•ELSE result:可选,当没有条件为真时返回的结果3. Case语句的其他形式除了简单形式的Case语句,还有其他形式的Case语句可以满足更复杂的条件判断需求。
Searched Case语句Searched Case语句是根据条件表达式的结果来判断执行哪个分支,它可以包含多个条件和结果。
以下是一个示例:SELECT column1,CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE resultENDFROM table;Case表达式Case表达式是一种在SELECT语句中使用的特殊形式的Case语句,它可以用于计算新的列值或替换现有列的值。
下面是一个示例:SELECT column1,CASE column2WHEN value1 THEN result1WHEN value2 THEN result2...ELSE resultEND AS new_columnFROM table;•column2:被比较的列名•value1, value2:可选的比较值•result1, result2:对应比较值相等时返回的结果•AS new_column:可选的新列名4. Case语句的应用场景Case语句在SQL查询中非常有用,可以用于对数据进行分类、转换和聚合。
case语句,循环语句
case语句,循环语句case语句,循环语句vim 名字也不能乱写⽐如vim rsync.sh应为后⾯需要pkill rsync 会把⽂件⼀起删掉1.case流程控制语句case 变量名4 in模式匹配1)命令的集合;;模式匹配2)命令的集合;;模式匹配3)命令的集合;;*) *的下⼀⾏不需要有;;echo USAGE[$0 1|2|3]esac[root@shell /server/scripts]# cat case.sh#!/bin/bash############################################################### File Name: case.sh# Time: 2019-11-04-09:43:18# Author: msy##############################################################case $1 inLinux)echo linux...;;Shell)echo shell...;;MySql)echo mysql...;;*)echo "USAGE $0 [Linux|Shell|MySql]"esac[root@shell /server/scripts]# sh case.sh Linuxlinux...case 批量删除⽤户[root@shell /server/scripts]# cat casedel.sh#!/bin/bash############################################################### File Name: casedel.sh# Time: 2019-11-04-10:22:07# Author: msy##############################################################read -p "请输⼊⽤户前缀名:" prefixread -p "请输⼊要删除⽤户数量:" numfor i in `seq $num`dofor n in `seq $num`doname=$prefix$ncase $ready iny|Y)id $name &>/dev/nullif [ $? -eq 0 ];thenuserdel -r $name[ $? -eq 0 ] && echo "$name del is ok"elseecho "id :$name: no such user"fi;;n|N)echo "不删除我,你按什么删除命令?" && exit ;;*)echo "USAGE $0 [y|Y|n|N]"esacdonecase菜单[root@web scripts]# cat menu.sh#!/bin/shecho -e "\t\t#########################"echo -e "\t\t#\t1.系统负载\t#"echo -e "\t\t#\t2.磁盘使⽤率\t#"echo -e "\t\t#\t3.内存使⽤率\t#"echo -e "\t\t#\t4.当前登录⽤户\t#"echo -e "\t\t#\t5.当前eth0的IP\t#"echo -e "\t\t#\t6.显⽰菜单\t#"echo -e "\t\t#########################"menu(){cat<<EOF1.u 系统负载2.d 磁盘使⽤率3.f 内存使⽤率4.w 当前登录⽤户5.ip 当前eth0的IP6.h 显⽰帮助(菜单)7.q 退出EOF}menuwhile truedoread -p "请输⼊你想要查看的系统信息的编号: " num case $num in1|u)uptime;;2|d)df -h;;3|f)free -h;;4|w)w;;5|ip)ip addmenu;;7|q)exit;;*)menuesacdone[root@shell /server/scripts]# cat caidan.sh#!/bin/bashmenu(){cat<<EOF0.菜单信息1.系统版本2.系统虚拟平台3.系统内核版本4.Eth0-IP地址5.Eth1-IP地址6.外⽹IP地址7.内存使⽤情况8.磁盘使⽤情况9.退出EOF}menuwhile truedoread -p "请输⼊要查看的信息编号:" numcase $num in0)menu;;1)hostnamectl |awk 'NR==7{print $3,$4,$5,$6}';;2)hostnamectl |awk 'NR==6{print $2}';;3)hostnamectl |awk 'NR==9{print $2,$3}';;4)ifconfig eth0 | awk 'NR==2{print $2}';;5)ifconfig eth1 | awk 'NR==2{print $2}';;6)curl -s |awk 'NR==1{print $NF}' ;;7)free -h;;8)df -h;;9)exit;;案例Nginx 启动脚本jumpserver跳板机/usr/sbin/nginx 使⽤命令进⾏启动后 systemctl ⽆法管理命令⾏启动的Nginx /usr/sbin/nginx 启动/usr/sbin/nginx -s stop 停⽌/usr/sbin/nginx -s reload 重新加载平滑重启/usr/sbin/nginx restart 重启当ip地址改变时,必须重启才⽣效sleep 2/usr/sbin/nginx⾃取状态 PID 端⼝状态[root@web scripts]# sh nginxstart.sh status当前Nginx的PID:116528[root@web scripts]# cat nginxstart.sh#!/bin/sh. /etc/init.d/functionsen=$1fun(){[ $? -eq 0 ] && action "Nginx $en is" /bin/true || action "Nginx $en is" /bin/false }case $1 instart)/usr/sbin/nginxfun;;stop)/usr/sbin/nginx -s stopfun;;reload)/usr/sbin/nginx -s reloadfun;;restart)/usr/sbin/nginx -s stopsleep 2/usr/sbin/nginxfun;;status)echo "当前Nginx的PID:`ps axu|grep nginx|grep master|awk '{print $2}'`";;*)echo "USAGE $0 [start|stop|reload|restart|status]"esac[root@shell /server/scripts]# cat nginx.sh#!/bin/bash############################################################## # File Name: nginx.sh# Time: 2019-11-05-17:18:53# Author: msy############################################################## [ -f /etc/init.d/functions ] && source /etc/init.d/functionsif [ ! $USER == "root" -a ! $UID -eq 0 ];thenif [ $# -ne 1 ];thenecho "请输⼊⼀个参数"echo "USAGE $0 [start|stop|reload|restart|status]"exitfiPid=/var/run/nginx.pidcase $1 instart)if [ -f $Pid ];thenaction "Nginx服务正在运⾏" /bin/trueelse/usr/sbin/nginx &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx服务启动成功" /bin/trueelseaction "Nginx服务启动失败" /bin/falseexitfifi;;stop)if [ -f $Pid ];then/usr/sbin/nginx -s stop &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx服务停⽌成功" /bin/trueelseaction "Nginx服务停⽌失败" /bin/falsefielseaction "Nginx服务没有运⾏" /bin/truefi;;reload)if [ -f $Pid ];then/usr/sbin/nginx -s reload &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx服务重载成功" /bin/trueelseaction "Nginx服务重载失败" /bin/falsefielseaction "Nginx服务没有运⾏,⽆法进⾏重载" /bin/false fi;;status)if [ -f $Pid ];thenaction "Nginx服务正在运⾏" /bin/trueelseaction "Nginx服务没有运⾏" /bin/truefi;;restart)if [ -f $Pid ];then/usr/sbin/nginx -s stop &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx服务停⽌成功" /bin/trueelseaction "Nginx服务重载失败" /bin/falsefisleep 3/usr/sbin/nginx &>/dev/nullaction "Nginx服务重启失败" /bin/falsefielse▽ action "Nginx服务没有运⾏" /bin/true/usr/sbin/nginx &>/dev/nullif [ $? -eq 0 ];thenaction "Nginx服务启动成功" /bin/trueelseaction "Nginx服务启动失败" /bin/falsefifi;;*)echo "USAGE $0 [start|stop|reload|restart|status]"esac跳板机[root@shell /server/scripts]# cat jump.sh#!/bin/bash############################################################## # File Name: jump.sh# Time: 2019-11-06-15:12:04# Author: msy############################################################## WEB01=10.0.0.7WEB02=10.0.0.8MySQL=10.0.0.51NFS=10.0.0.31menu(){cat<<EOF1. WEB01=10.0.0.72. WEB02=10.0.0.83. MySQL=10.0.0.514. NFS=10.0.0.315. 显⽰菜单6. 退出EOF}menutrap "echo 来了⽼弟?还想⾛?" HUP INT TSTP 禁⽌终⽌命令while truedoread -p "请输⼊要连接的主机:" numcase $num in1)ssh root@$WEB01;;2)ssh root@$WEB02;;3)ssh root@$MySQL;;4)ssh root@$NFS;;5)clearmenu;;6)echo "霍!你别想退出"exitesacdone安装服务脚本[root@shell /server/scripts]# cat qidongmenu.sh#!/bin/bash############################################################## # File Name: qidongmenu.sh# Time: 2019-11-06-16:18:21# Author: msy############################################################## master_menu(){cat<<EOF######################1.安装Nginx2.安装PHP3.退出######################EOF}Nginx_menu(){cat<<EOF######################1.安装Nginx-1.122.安装Nginx-1.143.安装Nginx-1.164.返回主菜单######################EOF}PHP_menu(){cat<<EOF######################1.安装PHP-5.52.安装PHP-5.73.安装PHP-7.14.返回主菜单######################EOF}master_menutrap "echo ⽼弟进来了还想跑?" HUP INT TSTP 禁⽌终⽌while truedoread -p "请输⼊你要安装的服务:" Servercase $Server in1)clear 清屏Nginx_menuwhile truedoread -p "请输⼊要安装的版本:" Versioncase $Version in1)echo "你选择是安装Nginx-1.12版本....."echo "正在安装....."sleep 2echo "Nginx-1.12版本安装完成";;echo "正在安装....."sleep 2echo "Nginx-1.14版本安装完成";;3)echo "你选择是安装Nginx-1.16版本....."echo "正在安装....."sleep 2echo "Nginx-1.16版本安装完成";;4)clearmaster_menubreak 跳出循环,继续向下执⾏ esacdone;;2)clearPHP_menuwhile truedoread -p "请输⼊你要安装的PHP版本:" install case $install in1)echo "你选择是安装PHP-5.5版本....."echo "正在安装......."sleep 2echo "安装PHP-5.5版本完成.....";;2)echo "你选择是安装PHP-5.6版本....."echo "正在安装......."sleep 2echo "安装PHP-5.6版本完成.....";;3)echo "你选择是安装PHP-7.1版本....."echo "正在安装......."sleep 2echo "安装PHP-7.1版本完成.....";;4)clearmaster_menubreakesacdone;;3)echo "进来容易,出去难";;woshiyunwei)exit;;*)echo "请按照要求输⼊"esacdone2.for循环for 变量名 in [取值列表] 苹果⾹蕉梨桃⼦西⽠字符串数字{}序列命令 do命令体echo 呵呵done[root@shell /server/scripts]# vim 1.sh#!/bin/bashread -p "请输⼊创建⽤户前缀:" nameread -p "请输⼊创建⽤户数量:" numread -p "确认创建$name$num? Y|y|N|n:" qrif [ $qr == "Y|y" ];thenecho "创建失败"exitfifor i in `seq $num`doecho $name$idone[root@shell /server/scripts]# sh 1.sh请输⼊创建⽤户前缀:m请输⼊创建⽤户数量:5确认创建m5? Y|y|N|n:ym1m2m3m4m5使⽤for循环创建⽤户cat user.txtzslsemoldboy[root@web scripts]# cat for1.sh#!/bin/shfor i in `cat user.txt`douseradd $idone命令⾏中使⽤for循环批量删除⽤户for i in `cat user.txt`;do userdel -r $i;done3.while循环#模式⼀a=1while [ $a -lt 10 ] 条件判断⽅式dodone#模式⼆while read line 读⼊⽂件⽅式dodone < test.txt#模式三while true 条件为真⼀直循环两数相乘#!/bin/basha=1b=10while [ $b -gt 0 ]doecho "$a * $b = $(( $a * $b ))"let a++let b--done在/test下创建8天⽂件,⽂件名带时间time=1[ -d /test/ ] || mkdir -p /test/while [ $time -le 8 ]dodate -s "2019110$time" &>/dev/nullif [ $? -eq 0 ];thentouch /test/`date +%F`.txtlet time++if [ $? -eq 0 ];thenecho "⽂件创建成功"elseecho "⽂件创建失败"fielseecho "时间修改失败"fidone[root@shell /test]# lltotal 0-rw-r--r-- 1 root root 0 Nov 1 00:00 2019-11-01.txt-rw-r--r-- 1 root root 0 Nov 2 00:00 2019-11-02.txt-rw-r--r-- 1 root root 0 Nov 3 00:00 2019-11-03.txt-rw-r--r-- 1 root root 0 Nov 4 00:00 2019-11-04.txt-rw-r--r-- 1 root root 0 Nov 5 00:00 2019-11-05.txt-rw-r--r-- 1 root root 0 Nov 6 00:00 2019-11-06.txt-rw-r--r-- 1 root root 0 Nov 7 00:00 2019-11-07.txt-rw-r--r-- 1 root root 0 Nov 8 00:00 2019-11-08.txtwhile read`判断⼀个⽂件中总共的⾏数`统计⾏号[root@web scripts]# cat while4.sh#!/bin/shwhile read linedolet i++done</etc/passwdecho $iwhile read line line 变量名按⾏读取⽂件的内容 for循环是按照空格分隔读取⽂件内容while read linedoif id $line &>/dev/null;thenecho "⽤户已经存在"continuefiecho "⽤户创建失败"fidone < user.txtwhile read linedoUser=`echo $line |awk -F: '{print $1}'`Pass=`echo $line |awk -F: '{print $2}'`id $User &>/dev/nullif [ $? -eq 0 ];thenecho "$User ⽤户已经存在"elseuseradd $User &>/dev/null && echo $Pass|passwd --stdin $User &>/dev/nullif [ $? -eq 0 ];thenecho "⽤户创建成功"elseecho "⽤户创建失败"fifidone < user.txtuntil 循环until 循环执⾏⼀系列命令直⾄条件为 true 时停⽌。
db2的case when 语句
db2的case when 语句摘要:1.DB2 的CASE 语句概述2.CASE 语句的基本语法3.CASE 语句的应用示例正文:【1.DB2 的CASE 语句概述】DB2 是一种关系型数据库管理系统,广泛应用于企业级数据处理。
在DB2 中,CASE 语句是一种条件判断语句,它可以根据特定条件执行不同的动作。
CASE 语句主要用于实现复杂的逻辑判断,提高SQL 查询的灵活性和可读性。
【2.CASE 语句的基本语法】CASE 语句的基本语法如下:```CASEWHEN condition THEN resultWHEN condition THEN result...ELSE resultEND```其中,`condition`表示条件,`result`表示满足条件时执行的动作。
可以使用多个WHEN 子句来定义多个条件及其对应的结果。
ELSE 子句是可选的,用于定义不满足任何条件时执行的动作。
【3.CASE 语句的应用示例】假设有一个名为`employees`的表,包含以下列:`id`、`name`、`salary`和`department`。
现在需要根据员工的部门计算其工资是否高于部门平均工资,并返回相应的提示信息。
可以使用CASE 语句实现如下查询:```sqlSELECTid,name,salary,department,CASEWHEN department = "IT" THEN "Salary is higher than average in IT department."WHEN department = "HR" THEN "Salary is higher than average in HR department."WHEN department = "Finance" THEN "Salary is higher than average in Finance department."ELSE "Salary is not higher than average in any department."END AS messageFROMemployees;```在上述查询中,我们使用了CASE 语句根据员工的部门判断其工资是否高于部门平均工资,并返回相应的提示信息。
case语句
case语句
case语句是在一系列的可能情况中选择一种情况进行选择的一种语句,它有助于简化流程控制语句结构,使程序更易于阅读和理解。
case语句的语法格式为:
switch(表达式)。
case 常量1:
语句序列1。
break;。
case 常量2:
语句序列2。
break;。
…。
…。
default:
默认情况下执行的语句序列。
break;。
}。
在使用case语句时,首先根据表达式的值来查找对应的case常量,如果没有找到,则执行default语句序列,如果找到,则执行对应的语句序列,执行完后中断switch语句,整个switch语句结束。
例如,如果某程序中有一个变量x,需要根据x的取值来输出不同的内容,可以使用case语句来实现:
switch(x)。
case 1:
printf(“x的值为1\n”);
break;。
case 2:
printf(“x的值为2\n”);
break;。
case 3:
printf(“x的值为3\n”);
break;。
default:
printf(“x的值非1、2、3之一\n”);
break;。
}。
case语句可以用作多种不同的程序,例如可以根据某个字符的ASCII 码值来判断并输出其字符对应的内容,也可以根据用户输入的某个整数选择和执行不同的操作。
case语句具有较强的灵活性,使程序更加简洁明了,能够帮助我们解决复杂的程序问题。
verilog case用法
verilog case用法Verilog语言中,case语句是用来比较多个可能的值的选项列表。
它是一种逻辑控制与分支语句,与C语言中的switch语句类似,但是在Verilog中,它有更强的功能和更广泛的应用场景。
在这篇文章中,我们将详细介绍Verilog中的case用法。
1. case语句的基本语法case语句可以有多个分支,每个分支都有一个可能的值。
当变量等于分支的值时,该分支将被执行。
case语句的基本语法如下所示:```case (expression)constant1: statement1;constant2: statement2;...constantn: statementn;default: default statement;endcase```其中,expression是要比较的值,constant1到constantn是case的各个分支的值,statement1到statementn是与各个分支相关联的执行语句,default是缺省分支,当expression的值不在constant1到constantn的取值范围内时,执行该分支的语句。
2. case语句的应用场景case语句可以用于不同的场景。
例如,它可以用于构建状态机,也可以用于处理多个可能的信号输入。
下面是一些常见的应用场景:2.1 状态机状态机是一种基于状态转换的控制策略,用于实现带有特定状态和状态转换的电路。
在Verilog中,case语句可以用于实现有限状态机(FSM)并控制物理设计器件。
下面是一个简单的例子:```reg [1:0] state;parameter STATEA = 2'b00, STATEB = 2'b01, STATEC = 2'b10;always@(posedge clk)begincase(state)STATEA:begin//do somethingstate <= STATEB;endSTATEB:begin//do somethingstate <= STATEC;endSTATEC:begin//do somethingstate <= STATEA;enddefault:begin//errorstate <= STATEA;endendcaseend```2.2 处理多个信号输入在图像处理等多媒体设计中,常常需要对不同类型的数据信号进行分别处理。
c语言中case的意思和用法
C语言是一种非常常用的编程语言,而在C语言中,case是一个非常重要的关键字。
本文将对C语言中case的意思和用法进行详细解释。
一、case的意思在C语言中,case是用来进行多分支选择的关键字。
通常,case会和switch语句一起使用,用来根据表达式的值选择不同的执行路径。
在switch语句中,case可以有多个,每个case后面跟着一个常量表达式。
当switch后面的表达式的值与某个case后面的常量表达式相等时,程序会跳转到该case后面的语句执行,直到遇到break语句或者switch语句结束为止。
二、case的用法1. 基本语法switch (表达式){case 值1:语句序列1;break;case 值2:语句序列2;break;...default:语句序列n;}2. 多分支选择在C语言中,case的主要作用是进行多分支选择。
通过将不同值对应的处理逻辑放在不同的case中,可以根据表达式的值执行不同的代码块,从而实现多分支选择的功能。
3. 注意事项在使用case时,需要注意以下几点:(1)case后面的值必须是常量表达式,而且必须是整型或字符型的常量表达式。
(2)在switch语句中,case的值不能重复,即每个case后面的常量表达式必须是唯一的。
(3)在case的语句序列中,通常需要使用break语句来跳出switch 语句,以防止后续的case语句被执行。
如果不加break语句,程序会继续执行下一个case中的语句。
4. default除了使用case来匹配具体的值外,还可以使用default来处理switch 表达式的值和任何case都不匹配的情况。
在default后面可以跟任意的语句序列,用来处理默认情况。
5. 实例下面是一个使用switch和case的简单示例:#include <stdio.h>int m本人n(){int num = 2;switch (num){case 1:printf("num是1");break;case 2:printf("num是2");break;case 3:printf("num是3");break;default:printf("num是其他值");}return 0;}在这个示例中,根据num的值不同,程序会执行不同的printf语句,从而实现了多分支选择的功能。
case简单语句
case简单语句
嘿,咱今儿就来聊聊“case 简单语句”。
你知道吗,这就好像是一把神奇的钥匙,能打开好多好多未知的大门!比如说,当你面对一个复杂得像一团乱麻的问题时,一个恰到好处的 case 简单语句就能像一道亮光,瞬间照亮解决问题的路。
就好比你在黑暗的房间里找东西,突然有人打开了灯,一切都变得清晰明了起来!
我记得有一次,我和朋友们一起玩一个解谜游戏。
那谜题可真是难啊,我们都快愁死了,脑袋都快想破了也没啥头绪。
这时候,我突然想到了一个 case 简单语句,哇塞,就像魔法一样,一下子就把谜题给解开了!朋友们都惊呆了,直呼我厉害,那感觉,真的是太棒啦!
再想想,case 简单语句在编程里不也是这样嘛!它能让那些复杂的代码变得有条理,有逻辑,让整个程序都能顺畅地运行起来。
这就好像是给一辆跑车装上了最牛的引擎,“嗖”的一下就冲出去啦!
而且啊,它不仅仅是在这些方面有用哦。
在生活中,我们也经常会遇到需要用 case 简单语句来解决问题的时候。
比如说,你要决定今天穿什么衣服,不就是根据不同的情况来选择嘛,这也是一种 case 简单语句呀!难道不是吗?
还有啊,当你要安排一天的行程时,不也是要考虑各种情况,然后做出最合适的安排吗?这也是 case 简单语句在发挥作用呀!
总之,case 简单语句真的是无处不在,超级重要的!它就像我们生
活中的小助手,随时都能帮我们一把。
所以啊,我们可得好好掌握它,让它为我们服务,让我们的生活变得更加轻松、更加有趣!这就是我
对 case 简单语句的看法,你呢,是不是也这么觉得呀?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
复习:
输入三个数a,b,c,输出最大数(分别用不嵌套if 和嵌套的if语句)
(提问)
4.4 Case语句
[例4-4-1] 某服装公司为了推销产品,采取这样的批发销售方案:凡订购超过100 套的,每套定价为50元,否则每套价格为80元。
编程由键盘输入订购套数,输出应付款的金额数。
解:设X为订购套数,Y为付款金额,则:
Var x,y: integer;
Begin
Write('X=') ;Readln(x) ;
if x >100 then y:=50*X else y:=80*X;
Writeln('y=',y) ;
Readln
End.
如果有多种(两种或两种以上)选择,常用情况语句编程。
将前面[例]改成用如下方法来处理。
根据题意,付款计算可分为两种情况:
①Y=50*X (X>100)
②Y=80*X (X<=100)
显然,情况①与②的选择取决于X值。
假设用N表示“情况值”,暂且先让N =2;
如果X>100则N=1;(此题中N的值只是1或2,且取决于X值)
Var X,Y,N: integer;
Begin
Write('X=') ;readln(x) ;n:=2;{ 先让n=2 }
if X>100 then n:=1;{如果X>100则n=1 }
Case n of { 关于情况处理}
1: Y:=50*X;
2: Y:=80*X;
end;
Writeln('Y=',Y) ;
Readln
End.
程序中的Case─end 语句为情况语句,是多路分支控制,一般格式为:
格式一:
case 表达式of
情况常量表1:语句1;
情况常量表2:语句2;
……
情况常量表n:语句n;
end;
格式一:执行情况语句时,先计算Case后面表达式的值,然后根据该值在情况常量表中的“对应安排”,选择其对应的语句执行,执行完所选择语句后就结束Case语句;如果常量表中没有一个与表达式值对应的语句,则什么也不做就结束本Case语句。
格式二:
Case 表达式of
情况常量表1: 语句1;
情况常量表2: 语句2;
……
情况常量表n: 语句n;
else 语句n+1
end;
格式二:这种格式的前面部分是相同的,所不同的是:如果常量表中没有一个与表达式值对应的语句,则执行与else对应的语句,然后结束Case语句。
case语句在使用时有几点要注意:
1. end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。
2.表达式的类型通常是整型或字符型。
所以表达式经常会用到mod、div运算和trunc、round等函数。
3.情况常量表必须是一个或几个常量,常量间用“,”间隔,其类型与表达式的类型一致。
常量间的顺序可以是任意的。
也就是说可以多个标号对应同一条语句。
4. 语句可以是多个语句,但必须用语句括号(begin……end)括起即复合语句。
5. case语句也可以嵌套
[例4-4-2] 对某产品征收税金,在产值1万元以上征收税5%;在1万元以下但在5000元以上的征收税3%;在5000元以下但在1000元以上征收税2%;1000元以下的免收税。
编程计算该产品的收税金额。
解:设x为产值,tax为税金,用P表示情况常量各值,以题意中每1000元为情况分界:
P=0: tax=0 (x<1000 )
P=1,2,3,4: tax=x*0.02 (1000<=x<5000 )
P=5,6,7,8,9: tax=x*0.03 (5000<X<=10000 )
P=10: tax=x*0.05 (x> 10000 )
这里的P是“情况”值,用产值x除以1000的整数值作为P,如果P>10也归入P=10的情况。
Pascal语言用P=trunc(x/1000)取整计算,
Var x,p : integer;
Tax : real;
Begin
Write('Number=') ;readln(x) ;
P:=trunc(x/1000) ;
if P>9 then P:=10;
Case P of
0 : tax:=0;
1,2,3,4 : tax:=x*0.2;
5,6,7,8,9 : tax:=x*0.3;
10 : tax:=x*0.5
end;
Writeln('tax=',tax:5:2) ;
Readln
End.
[例4-4-3]某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。
编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。
var
oil,help:char; kg,total:real;
begin
write('Enter the amount in kilograms(kg):'); readln(kg);
write('Which type of the gasoline(a,b,c):'); readln(oil);
write('Which type for service(f,m,e):'); readln(help);
case oil of {处理汽油的类型}
'a': total:=1.50*kg;
'b': total:=1.35*kg;
'c': total:=1.18*kg;
else writeln('Input Error!')
end;
case help of {处理服务类型}
'f':;
'm': total:=total*(1-0.05);
'e': total:=total*(1-0.10);
else writeln('Input Error!')
end;
writeln;
writeln('Total is ',total:10:2);
end.
[例4-4-4]从键盘上读入年和月,输出该月有多少天。
var year,month,day:integer;
begin
write('Enter year and month:'); readln(year,month);
case month of
1,3,5,7,8,10,12: day:=31;
4,6,9,11: day:=30; {以上处理31天和30天的情况}
2: if (year mod 400=0) or ((year mod 4=0) and (year mod
100<>0))then day:=29 else day:=28; {以上处理闰年情况}
end;
writeln('day=',day)
end.
例P44 例4-18
练习:
1、运输公司计算运费时,距离(S)越长,每公里运费越低,标准如下:
如果S<250公里;运费为标准运价P的100%
如果250公里<=S<500公里,运费为标准运价P的98%;
如果500公里<=S<1000公里,运费为标准运价P的95%;
如果1000公里<=S<2000公里,运费为标准运价P的92%;
如果2000公里<=S<3000公里,运费为标准运价P的90%;
如果S=>3000公里,运费为标准运价P的85%;。
请编计算运费的程序。
(输入距离S以及标准运价P(每公里的标准运价),输出运费。
) {用case语句做}
2、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。
编一程序完成分数的自动转换工作。
转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。
(提示:可以利用DIV运算来使程序更简明)
3、输入一个字母符,按下面规则输出相应数字。
输入a,b,c,d或A,B,C,D则分别对应输出1,2,3,4,若是其它字符则输出5。
输出a,b,c中最大值。
不嵌套:
if a>b then max:=a else max:=b;
if c>max then max:=c;
writeln(max);
嵌套:
If a>b then if a>c then max:=a;
else max:=c
else if b>c then max:=b
else max:=c;
writeln(max)。