if语句

语法1

如果条件成立,执行if和end if 之间的语句。

if 条件表达式 then
plsql语句;
end if;

语法2

if  条件表达式 then
条件成立时执行的语句;
else
条件不成立时执行的语句;
end if;

语法3

if 条件表达式1 then
条件1成立时执行的语句;
elsif 条件表达式2 then
条件2成立时执行的语句;
...
elsif 条件表达式n then
条件n成立时执行的语句;
else
所有条件都不成立时执行的语句;
end if;
例1

```
declare
test_scores number(4,1):=&请输入您的成绩;
begin
if test_scores>=90 and test_scores=80 and test_scores=70 and test_scores=60 and test_scores
例2

declare
test_scores1 number(4,1):=&请输入您的成绩; begin
if test_scores1=60 then
dbms_output.put_line('您输入的成绩为'||test_scores1||' 经评测等级为'||'D');
elsif test_scores1=70 then
dbms_output.put_line('您输入的成绩为'||test_scores1||' 经评测等级为'||'C');
elsif test_scores1=80 then
dbms_output.put_line('您输入的成绩为'||test_scores1||' 经评测等级为'||'B');
elsif test_scores1=90 then
dbms_output.put_line('您输入的成绩为'||test_scores1||' 经评测等级为'||'A');
else
dbms_output.put_line('请您确认成绩后再试');
end if;
end;

case when语句

语法1(这种语法一般只用在sql语句中,它功能和decode函数一样)

case
when 条件表达式1 then
值1;
when 条件表达式2 then
值2;
...
when 条件表达式3 then
值2;
else
默认值
end case;

语法2

case 表达式
when 值1 then
plsql语句;
when 值2 then
plsql语句;
..
when 值3 then
plsql语句;
else
默认执行的语句;
end case;
例1

```
declare
v_scores number(4,1):=&请输入您的成绩;
v_output varchar2(50);
begin
v_output:=case
when v_scores=60 then 'D'
when v_scores=70 then 'C'
when v_scores=80 then 'B'
when v_scores=90 then 'A'
else '请您确认成绩后再试' end;
dbms_output.put_line('您输入的成绩为'||v_scores||'评测等级为'||v_output);
end;
```
例2

```
declare
v_grade varchar2(20):='A';
v_score varchar2(50);
begin
v_score:=case v_grade
when '不及格' then '成绩

loop

语法

loop
循环体(plsql语句);
退出循环条件;
循环变量控制语句;
end loop
循环打印1-10

```
declare
  --声明一个变量作为循环变量
  n number(6):=1; begin
  --循环打印
  loop
    --循环体语句,打印n的值
    dbms_output.put_line(n);
    --退出循环条件
    exit when n=10;
    --循环控制语句,修改循环变量n的值
    n:=n+1;
  end loop; end;
```
循环打印1-10

declare
control_var number(2):=0;
begin
loop
if control_var>9 then
exit;
end if;
control_var:=control_var+1;
dbms_output.put_line(control_var);
end loop;
end;

while

如果循环条件成立,执行循环体和循环控制语句

直到循环条件不成立退出循环

while 循环条件 loop
循环体语句;
循环控制语句;
end loop;
循环打印1-10

```
declare
--声明一个变量作为循环变量
n number(10):=1;
begin
--while循环打印条件
while n
循环打印1-10

```
declare
n number(10):=0;
begin
while n

for循环

语法1

for 循环变量 in 数字集合 loop
循环体语句;
end loop;

数字集合的表示

1..10 表示1到10的自然数集合

循环打印1-10

```
begin
for i in 1..10 loop
dbms_output.put_line(i);
end loop;
end;
```
循环打印10-1

```
begin
for i in reverse 1..10 loop
dbms_output.put_line(i);
end loop;
end;
``` reverse表示集合顺序反转

语法2

for 循环变量 in select语句或者游标变量 loop
循环体语句;
end loop;
获取emp表中员工编号

```
begin
for v_empno in(select empno from emp) loop
dbms_output.put_line(v_empno.empno);
end loop;
end; ```
获取emp表中员工编号和工作

```
begin
for v_emp in(select * from emp) loop
dbms_output.put_line(v_emp.empno||','||v_emp.job);
end loop;
end;
```
获取emp表中全部数据

```
begin
for v_emp in(select * from emp) loop
dbms_output.put_line(rpad(v_emp.empno, 4,' ')||' , '||
nvl(rpad(v_emp.ename,10,' '),' ')||' , '||
nvl(rpad(v_emp.job,9,' '),' ')||' , '||
nvl(rpad(v_emp.mgr,4,' '),' ')||' , '||
nvl(to_char(v_emp.hiredate,'YYYYMMDD'),' ')||' , '||
nvl(rpad(v_emp.sal,4,' '),' ')||' , '||
nvl(rpad(v_emp.comm,7,' '),' ')||' , '||
nvl(rpad(v_emp.deptno,2,' '),' ')
);
end loop;
end;
```

退出循环

  • exit退出整个循环
  • continue退出本次循环
  • return直接退出程序
for
for1

```
begin
for i in 1..9 loop if i=5 then
dbms_output.put_line('我要退出了');
exit;
end if; dbms_output.put_line(i);
end loop;
dbms_output.put_line('小**,我在循环体外');
end;
```
执行结果

```
1
2
3
4
我要退出了
小**,我在循环体外
```
for2

```
begin
for i in 1..9 loop if i=5 then
dbms_output.put_line('我要退出了');
continue;
end if;
dbms_output.put_line(i);
end loop;
dbms_output.put_line('小**,我在循环体外');
end;
```
执行结果

1
2
3
4
我要退出了
6
7
8
9
小**,我在循环体外
for3

```
begin
for i in 1..9 loop if i=5 then
dbms_output.put_line('我要退出了');
return;
end if;
dbms_output.put_line(i);
end loop;
dbms_output.put_line('小**,我在循环体外');
end;
```
执行结果

1
2
3
4
我要退出了
loop
loop

```
declare
v_control number(2) := 0;
begin
loop
v_control := v_control + 1;
if v_control = 5 then
continue;
end if;
if v_control = 10 then
exit;
end if;
dbms_output.put_line(v_control);
end loop;
dbms_output.put_line('小**,我在循环体外');
end;
```
执行结果

1
2
3
4
6
7
8
9
小**,我在循环体外
while
while

```
declare
v_control number(2):=0;
begin
while v_control
执行结果

1
2
3
4
6
7
8
9

goto(不常用)

执行到goto语句时,代码会回到标签所在位置,重新往下执行

标签

```
declare
--声明一个变量作为循环变量
n number:=1;
begin
>
dbms_output.put_line(n);
n:=n+1;
if n

plsql判断和循环的更多相关文章

  1. python之--条件判断和循环

    Python之判断 和其他语言一样,python同样具有条件判断和循环的操作,比如我们可以编写一个简单的判断操作:使用if关键字可以达到判断的效果,如下例: >>> test_if ...

  2. python学习第六天 条件判断和循环

    总归来讲,学过C语言的同学,对条件判断和循环并不陌生.这次随笔只是普及一下python的条件判断和循环对应的语法而已. 条件判断: 不多说,直接贴代码: age = 23 if age >= 6 ...

  3. 初学Java scirpt(判断、循环语句)

    在编写代码时,我们经常需要为不同的判断结果来执行不同的动作以及需要反复执行同一段代码,这时我们就需要使用判断和循环语句来实现. 1.判断语句(if) 判断语句经常用的有(if......else).( ...

  4. python入门(11)条件判断和循环

    python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...

  5. Python学习之条件判断和循环

    #coding= utf-8 # 条件判断和循环 # 如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做 age1 = 20 if age1 >= 18: prin ...

  6. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  7. 【转】shell编程下 特殊变量、test / [ ]判断、循环、脚本排错

    [转]shell编程下 特殊变量.test / [ ]判断.循环.脚本排错 第1章 shell中的特殊变量 1.1 $# $# 表示参数的个数 1.1.1 [示例]脚本内容 [root@znix ~] ...

  8. javascript中的分支判断与循环

    分支判断与循环 分支结构 单一选择结构(if) 二路选择结构(if/else) 内联三元运算符 ?: 多路选择结构(switch) var condition = true; if (conditio ...

  9. python基础(二)条件判断、循环、格式化输出

    继续上一篇,今天主要总结一下条件判断.循环.格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样, ...

随机推荐

  1. 面试精选:JVM垃圾回收

    Tips:关注公众号:松花皮蛋的黑板报,领取程序员月薪25K+秘籍,进军BAT必备! Java堆中存放着大量的Java对象实例,在垃圾收集器回收内存前,第一件事情就是确定哪些对象是“活着的”,哪些是可 ...

  2. scss新手使用指南

    还在用死的css写样式吗?那可太麻烦了,各种长串选择器不说,还有各种继承权重有时候还有可能不生效 我的小程序项目也结束了,是时候总结一下scss语法了,毕竟用起来更加方便而且还能精简一点代码,好处多多 ...

  3. 使用Typescript重构axios(二十二)——请求取消功能:收尾

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  4. linux 命令 | 常用命令导图(0)

  5. 邵国际: C 语言对象化设计实例 —— 命令解析器

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 邵国际 来源: 微信公众号linux阅码场(id: linuxdev) 内容简介 单片机工程师常常疑惑为什么 ...

  6. python手册学习笔记2

    笔记2 > http://www.pythondoc.com/pythontutorial3/datastructures.html 列表操作 list.append(x) 把一个元素添加到列表 ...

  7. Python 基础 内置函数 迭代器与生成器

    今天就来介绍一下内置函数和迭代器 .生成器相关的知识 一.内置函数:就是Python为我们提供的直接可以使用的函数. 简单介绍几个自己认为比较重要的 1.#1.eval函数:(可以把文件中每行中的数据 ...

  8. python脚本 环境准备

    现在的公司用 Python 做 Web 开发,入职到现在为止(三个月),算是入门了 Python Web 开发 但是 Python 本身是脚本语言,我还从来没有体会到脚本语言能给日常工作带来的便利 就 ...

  9. pdf2eps implement

    Well, I used the command pdftops in the LaTeX distribution such as MiKTeX/TeXLive/CTex to implement ...

  10. 了解Spring的基本概念

    参考资料:https://www.jianshu.com/p/1c483bd8fd6d 在正式学习Spring框架之前,肯定有很多疑问,比如说: 1.Spring中经常出现的IOC.AOP.DI是什么 ...