条件控制:IF & CASE语句

IF语句主要有以下三种基本形式:

一、 IF-THEN语句

IF CONDITION THEN
           STATEMENT 1;
           ...
           STATEMENT N;
       END IF;

二、 IF-THEN-ELSE语句

IF CONDITION THEN
           STATEMENT 1;
       ELSE
           STATEMENT 2;
       END IF;

三、 ELSLF语句

IF CONDITION 1 THEN
           STATEMENT 1;
       ELSIF CONDITION 2 THEN
           STATEMENT 2;
       ELSIF CONDITION 3 THEN
           STATEMENT 3;
            ...
       ELSE
           STATEMENT N;  -->>在ELSIF语句中,ELSE子句并不是必需的
       END IF

下面,试举一例:用SYSDATE函数判断今天是否是周末,如果是周末的话,判断现在是上午还是下午。无论是否是周末,最后均显示日期。

注意:IF的嵌套用法和在ELSIF语句中,ELSE子句并不是必需的

       DECLARE
             v_day varchar2(10);
             v_time number(2);
       BEGIN
             v_day := RTRIM(to_char(sysdate,‘DAY‘));
             v_time := to_char(sysdate,‘hh24‘);
             IF v_day in (‘SATURDAY‘,‘SUNDAY‘) THEN   -->>下面嵌套了一个ELSIF语句
                     IF v_time >= 6 AND v_time <12 THEN
                            DBMS_OUTPUT.PUT_LINE(‘Good Moring‘);
                     ELSIF v_time >=12 AND v_time <=18 THEN
                            DBMS_OUTPUT.PUT_LINE(‘Good Afternoon‘);
                     END IF;
             END IF;
             DBMS_OUTPUT.PUT_LINE(‘The time is: ‘||to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘));
        END;

CASE语句

CASE语句存在两种形式:CASE和搜索式CASE。

一、 CASE语句

CASE SELECTOR
            WHEN EXPRESSION 1 THEN STATEMENT 1;
            WHEN EXPRESSION 2 THEN STATEMENT 2;
            ...
            WHEN EXPRESSION N THEN STATEMENT N;
            ELSE STATEMENT N+1;
        END CASE;

下面,试举一例:用于判断输入数值的奇偶性。

DECLARE
  v_num NUMBER := &user_num;
  v_num_flag NUMBER;
BEGIN
  v_num_flag := MOD(v_num,2);
  CASE v_num_flag
    WHEN 0 THEN
      DBMS_OUTPUT.PUT_LINE(v_num||‘ is even number‘);
    ELSE
      DBMS_OUTPUT.PUT_LINE(v_num||‘ is odd number‘);
  END CASE;
END;

二、 搜索式CASE语句

CASE
           WHEN SEARCH CONDITION 1 THEN STATEMENT 1;
           WHEN SEARCH CONDITION 2 THEN STATEMENT 2;
           ...
           WHEN SEARCH CONDITION N THEN STATEMENT N;
           ELSE STATEMENT N+1;
       END CASE;

以下用搜索式CASE语句重写上例  -->> 注意:没有声明v_num_flag变量,直接在WHEN中判断

DECLARE
  v_num NUMBER := &user_num;
BEGIN
  CASE
    WHEN MOD(v_num,2)=0 THEN
      DBMS_OUTPUT.PUT_LINE(v_num||‘ is even number‘);
    ELSE
      DBMS_OUTPUT.PUT_LINE(v_num||‘ is odd number‘);
  END CASE;
END;

CASE表达式

倘若是使用CASE表达式,上述CASE语句和搜索式CASE语句可分别重写如下:

一、 对应CASE语句

DECLARE
  v_num NUMBER := &user_num;
  v_num_flag number;
  v_result varchar2(30);
BEGIN
  v_num_flag := MOD(v_num,2);
  v_result :=
    CASE v_num_flag
       WHEN 0 THEN
          v_num||‘ is even number‘
       ELSE
          v_num ||‘ is odd number‘
    END;
  DBMS_OUTPUT.PUT_LINE(v_result);
END;

二、 对应搜索式CASE语句

DECLARE
  v_num NUMBER := &user_num;
  v_result varchar2(30);
BEGIN
  v_result :=
    CASE
       WHEN MOD(v_num,2) =  0 THEN
          v_num||‘ is even number‘
       ELSE
          v_num ||‘ is odd number‘
    END;
  DBMS_OUTPUT.PUT_LINE(v_result);
END;

注意:CASE语句和CASE表达式之间的语法区别:在CASE语句中,WHEN和ELSE子句中的可执行语句以分号结尾。而在CASE表达式中,WHEN和ELSE子句所包含的表达式的结尾处不是分号。CASE语句以END CASE终止,CASE表达式以END结尾。

条件控制:IF & CASE语句

时间: 2024-11-06 21:20:03

条件控制:IF & CASE语句的相关文章

ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句

5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN STATEMENT 2; ........ WHEN EXPRESSION N THEN STATEMENT N; ELSE STATEMENT N+1; END CASE; 保留字CASE标识CASE语句的开始.选择器决定哪个WHEN子句应该被执行.每个WHEN子句都包含一个EXPRESSION

Shell脚本的条件控制和循环语句

条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误. if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句 if ... else ... fi 语句 if ... elif ... else ... f

Python - 条件控制、循环语句 - 第十二天

Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块. Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else. 注意: 1.每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块. 2.使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块. 3

Python条件控制与循环语句

1. 条件控制 # if-elif-else结构 age = 12 if age < 4: price = 0 elif age < 18: price = 5 else: price = 10 print("Your admission cost is $" + str(price) + ".") # Your admission cost is $5. 可以使用多个elif代码块,也可以省略else代码块. 1.1 使用if语句处理列表 # 确定列表

Python之路-条件控制与循环语句

一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: if 条件: 条件成立,执行代码块 如: '''' if语句 if 条件表达式: 条件成立则执行 执行一下代码 ''' # i = 0 # print('---------if开始') # if i < 5:#条件成立 # print('我比5大') # print('---------if结束'

ORACLE PL/SQL 实例精解之第四章 条件控制:if 语句

4.1 IF 语句 IF语句两种形式:IF-THEN IF-THEN-ELSE 使用IF-THEN,可以指定需要执行的一组动作. IF-THEN-ELSE语句指定两组动作 1. IF-THEN TRUE执行语句序列 结构: IF CONDITION THEN STATEMENT 1; ....... STATEMENT N; END IF; 2. IF - THEN- ELSE语句 IF-THEN指定当前条件计算为true时,需要执行语句序列.当条件计算为false时,不采取任何特别活动,仅仅是

循环结构 、 函数及中断控制 、 case语句

1:使用for循环结构 一.for循环的基本用法 脚本1,通过循环读取账户文件user.txt,批量创建账户:[[email protected] ~]# vim for01.sh#!/bin/bashfor i in $(cat root/user.txt)douseradd $iecho "123456" | passwd --stdin $idone[[email protected] ~]# chmod +x for01.sh 二.批量检测多个主机的存活状态 [[email p

理论+实操:shell之case语句for/while/until循环语句、函数、数组-满满的干货

前言: 单引号表示纯符号 用双引号表字符串 case多分支语句 循环语句 for循环语句 while循环语句 until循环语句 shell函数 shell数组 一 : case语句的结构 1.1 case结构 多分支表现形式:if语句,case语句 case 语句可以使用正则表达式,正则表达式后面会去阐述 针对变量的不同取值,分别执行不同的命令程序 case 中::表示一句话的结束 如果匹配某一个固定值,大多数用caes,其适用于某一个固定值 如果匹配某一个区间范围,大多数用if else 语

hell脚本编写 之 条件选择,条件判断,循环语句

1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐条件进行判断,第一次遇为"真"条件时,执行其分支,而后结束整个if语句 if是根据判读条件的命令的退出状态来执行命令,if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分

Shell脚本编程——case语句

天我为大家分享的是关于如何用case语句去写一些选择执行的脚本.case语句主要合适应用于一些选择条件比较复杂的脚本中,如果我们用if多分支语句也能写出来,但是显的太哆嗦,此时我们的最佳选择就就是case语句. 条件判断:case语句      case 变量引用 in      PAT1)      分支1      ;;      PAT2)      分支2      ;;      ...      *)      默认分支      ;;      esac 示例代码: 1 #!/bi