6.1 简单循环

简单循环,就想其名称一张,是一种最基本循环。简单循环具有如下结构

LOOP

  STATEMENT 1;

  STATEMENT 2;

  ...

  STATEMENT N;

END LOOP;

保留字LOOP标识简单循环的开始。STATEMENT1到STATEMENT N 是反复执行的语句序列。这些语句由一个或者多个标准的编程结构组成。END LOOP是标识循环结构结束的保留字

每次循环迭代处理时,一些列语句会执行,然后再次执行循环最开始的语句。上述语句序列会无限制的执行,因为没有语句指定何时循环会终止。因此,简单循环称为无穷循环,因为无法退出这个循环,正确构造的循环需要退出条件,退出条件决定循环终止的情况。退出条件有两种形式:EXIT和EXIT WHEN

1. EXIT语句

使用EXIT子句,当EXIT条件为TRUE时,循环会终止。计算EXIT条件时会使用IF语句。当EXIT语句被计算为TRUE时,执行权会转到END LOOP语句后的第一条可执行语句

  LOOP

    STATEMENT 1;

    STATEMENT 2;

    IF CONDIDTION THEN

       EXIT;

  END LOOP;

  STATEMENT 3;

2. EXIT WHEN 语句

  只有当EXIT WHEN 语句条件的计算结果为TRUE时,才会终止循环。然后,执行权会转到END LOOP 语句之后的第一条可执行语句。

EXIT WHEN子句的循环结构

LOOP

  STATEMENT 1;

  STATEMENT 2;

  EXIT WHEN CONDIDTION;

END LOOP;

STATEMENT 3;

6.1.2 使用带有EXIT WHEN条件的简单循环

6.2 WHILE 循环

WHILE循环结构:

WHILE CONDITION LOOP

  STATEMENT 1;

  STATEMENT 2;

  ......

  STATEMENT N;

END LOOP;

保留字WHILE标识循环结构的开始。CONDITION是本训话的测试条件,结果为TRUE或者FALSE.测试结果决定是否执行本循环。语句1~N是重复执行的语句序列。END LOOP是标识循环结构结束的保留字

理解:就是先判断CONDIDTION如果是TRUE满足就进入循环,不满足就结束循环直接执行下一条语句

提前终止循环

在WHILE循环体中,可以使用EXIT和EXIT WHEN语句。如果在测试条件为FALSE之前,EXIT条件为TRUE,则循环会被提前终止。如果在EXIT条件为TRUE之前,测试条件为TRUE,测不算作循环提前终止。

WHILE TEST_CONDIDTION LOOP

  STATEMENT 1;

  STATEMENT 2;

  IF EXIT_CONDITION THEN

    EXIT;

  END IF;

  END LOOP;

  STATEMENT 3;

或者

WHILE TEST_CONDIDTION LOOP

  STATEMENT 1;

  STATEMENT 2;

  EXIT WHEN EXIT_CONDITION;

END LOOP;

STATEMENT 3

6.3 数值型FOR循环

FOR loop_counter IN [REVERSE] lower_limit..upper_limit loop

  STATEMENT 1;

  STATEMENT 2;

  .....

  STATEMENT N;

END LOOP

保留字FOR标识FOR循环结构的开始。变量loop_counter是以已含定义的索引变量,没有必要再PL/SQL语句块的生命部分定义循环计数器。这个变量是循环结构定义的。lower_limit和upper_limit是两个整数数字或者在运行时计算结果为整数值的表达式,双点号。。是范围操作符。lower_limit和upper_limit是两个整数数字或者在运行时计算结果为整数值的表达式,双点号。。是范围操作符。lower_limit和upper_limit定义循环的迭代次数,其值在循环第一次迭代时计算。语句1到N是反复执行的语句序列。END LOOP是标识循环结构结束的保留字。当循环被定义时,保留字IN或者IN REVERSE必须已经存在。如果使用REVERSE保留字,循环计数器会从上限值迭代到下限值。但是限制规范的语法不会变化。下限制始终会被首先引用。

1. 在循环中使用REVERSE选项

在本节前面,当计算机循环计数器的值时,可以使用两个选项:IN和REVERSE.前面已经讨论过在循环中IN选项的用法。下面的例子演示如何在循环中使用IN REVERSE选项

  

ORACLE PL/SQL 实例精解之第六章 迭代控制之一的更多相关文章

  1. ORACLE PL/SQL 实例精解之第七章 迭代控制之二

    7.1CONTINUE语句 CONTINUE语句会导致循环终止当前迭代.并且当CONTINUE的条件为TRUE时,开始执行该循环的下一次迭代.需要借助于IF语句来计算COUNTINUE条件.当CONT ...

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

    5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...

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

    4.1 IF 语句 IF语句两种形式:IF-THEN IF-THEN-ELSE 使用IF-THEN,可以指定需要执行的一组动作. IF-THEN-ELSE语句指定两组动作 1. IF-THEN TRU ...

  4. ORACLE PL/SQL 实例精解之第三章 PL/SQL中的SQL

    3.1 在PL/SQL中使用DML 在PL/SQL语块中,两种变量赋值a. := 初始化.b. select into语法,PL/SQL语块的声明部分被声明的变量,后期可以使用选择语句进行赋值. 3. ...

  5. ORACLE PL/SQL 实例精解之第二章 通用编程语言基础

    通用编程语言基础 2.1PL/SQL编程基础 1. 字符类型:支持四中类型字符:字母,数字,符号和空格,组合一个或多个字符就会创建一个词汇单元 2. 词汇单元 a.标识符必须以字符开头 b.保留字是p ...

  6. ORACLE PL/SQL 实例精解之第一章 PL/SQL概念

    1.传统一层一层传数据,而PLSQL作为独立的单元返回客户端,减少查询,减少网路传输的往返,高效 2.PL/SQL语句块 分为两种:命名(子程序,函数,包保存在数据库中,后期可以根据名称进行引用),匿 ...

  7. pl/sql 实例精解 05

    本章主要讨论 case 语句 1: case [SELECTOR] 2: when expression 1 then statement 1; 3: when expression 2 then s ...

  8. pl/sql 实例精解 03

    1. 在Pl/sql 中使用 sql 1: /* 2: * 一个 pl/sql 语句块, 只是一个容器, 是表明一个整体的容器, 容器里可以放置多个sql语句 3: */ 4:   5: declar ...

  9. pl/sql 实例精解 04

    本章主要讨论, IF 语句的应用. 1: if condition1 then 2: statement1 3: elsif condition2 then 4: statement2 5: else ...

随机推荐

  1. Web常见安全漏洞原理及防范-学习笔记

    公司在i春秋上面报的一个课程.http://www.ichunqiu.com/course/55885,视频学习. OWASP (Open Web Application Secutiry Proje ...

  2. 关于android 使用bitmap的OOM心得和解决方式

    android开发,从2010年開始学习到如今的独立完毕一个app,这漫长的四年,已经经历了非常多次bug的折磨.无数次的加班训练.然而,自以为自己已经比較了解android了,却近期在一个项目上.由 ...

  3. iOS开发之UITabBarController和UICollectionView的使用

    这一篇要记录的是iOS开发中UITabBarController控件和UICollectionView控件的使用.APP跑起来之后的效果例如以下图: watermark/2/text/aHR0cDov ...

  4. HDU2084_数塔【简单题】【数塔】

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  5. UVA 11246 - K-Multiple Free set(数论推理)

    UVA 11246 - K-Multiple Free set 题目链接 题意:一个{1..n}的集合.求一个子集合.使得元素个数最多,而且不存在有两个元素x1 * k = x2,求出最多的元素个数是 ...

  6. linux PC手把手搭建minigui3.0开发环境

    1.下载网址http://www.minigui.com/en/download/ 2.下载资料: 3.安装过程: (1)安装 libminigui-gpl-3.0.12.tar.gz tar zxv ...

  7. oracle的shared、dedicated模式解析

    主要參考文档:http://www.itpub.net/thread-1714191-1-1.html Oracleh有两种server模式shared mode和dedicated mode. De ...

  8. 推断View是否显示在界面上

    我们都知道ViewController有viewWillAppear和viewDidAppear等关于页面生命周期的方法,用来对视图做一些管理,比方页面出现时怎么样,页面消失时怎么样.. 可是对于Vi ...

  9. Hadoop MapReduce两种架构 以及 YARN

    一.MRv1 Master - Slave 模式 存在JobTracker单点失败的问题,在YARN得到了解决. 主要包含4部分:JobTracker,TaskTracker,Task,Client ...

  10. git apply、git am打补丁.diff 和 .patch【转】

    本文转载自:https://www.jianshu.com/p/e5d801b936b6 前提: 生成patch: git format-patch -M master 生成指定patch,0163b ...