参考:Statements Routines —— 控制语句关键字


01   FOR 循环语句。
02   FOREACH 循环语句。
03   WHILE...DO 循环语句。
04   IF...THEN...ELSE 选择语句。
05   CASE 只执行符合条件的一个语句块。 
06   SWITCH 执行符合条件后面的所有语句块。
07   REPEAT...UNTIL 循环语句。 
08   BEGIN...END 用于显示多条语句。
09   CONTINUE 执行循环语句中的下一条循环。
10   BREAK 从循环、CASE 或 SWITCH 语句中跳出。

序号 名称  

功能说明 & 语法 & 举例

01 FOR  

循环语句。
-----------------------------------------------------------------------------------------------
 FOR variable = init, limit [, Increment] DO statement 
-----------------------------------------------------------------------------------------------
 FOR variable = init, limit [, Increment] DO BEGIN 
    statements                                     
 ENDFOR                                           
-----------------------------------------------------------------------------------------------
◈ init:开始的数
◈ limit:结束的数
◈ Increment:增量值
◈ statement(s):循环语句内容

 
IDL> FOR i = 1, 10, 4 DO PRINT, i
1
5
9 FOR i = 1, 10, 4 DO BEGIN
PRINT, i
ENDFOR
 02 FOREACH  

循环语句。
-----------------------------------------------------------------------------------------------
 FOREACH Element, Variable [, Index] DO Statement 
-----------------------------------------------------------------------------------------------
 FOREACH Element, Variable [, Index] DO BEGIN 
    statements                                
 ENDFOREACH                  
-----------------------------------------------------------------------------------------------
? Element:每一个元素
◈ Variable:数组变量
◈ Index:元素的索引值
◈ Statement(s):循环语句内容

 
IDL> strs = ["alex", "bn", "lee"]
IDL> FOREACH e, strs, i DO PRINT, i, "--", e
0--alex
1--bn
2--lee strs = ["alex", "bn", "lee"]
FOREACH e, strs, i DO BEGIN
PRINT, i, "--", e
ENDFOREACH
03 WHILE...DO  

循环语句。
-----------------------------------------------------------------------------------------------
 WHILE expression DO statement 
-----------------------------------------------------------------------------------------------
 WHILE expression DO BEGIN 
    statements             
 ENDWHILE                  
-----------------------------------------------------------------------------------------------
◈ expression:判断表达式
◈ statement(s):循环语句

 
IDL> i = 3
IDL> WHILE(i gt 0) DO PRINT, i--
3
2
1 i = 3
WHILE(i gt 0) DO BEGIN
PRINT, i--
ENDWHILE
04 IF...THEN...ELSE  

选择语句
-----------------------------------------------------------------------------------------------
 IF
expression THEN statement 
-----------------------------------------------------------------------------------------------
 IF
expression THEN statement ELSE statement 
-----------------------------------------------------------------------------------------------
 IF
expression THEN BEGIN 
   statements             
 ENDIF                    
-----------------------------------------------------------------------------------------------
 IF
expression THEN BEGIN 
   statements             
 ENDIF ELSE BEGIN         
   statements             
 ENDELSE                  
-----------------------------------------------------------------------------------------------
◈ expression:判断表达式
◈ statement(s):语句内容

 
IDL> A = 2
IDL> B = 3
IDL> IF(A EQ 2) AND (B EQ 3) THEN PRINT, 'A = ', A, STRING(13B), 'B = ', B
A = 2
B = 3 IDL> A = 2
IDL> IF(A EQ 2) THEN PRINT, 'A = ', A ELSE PRINT, 'A ≠ ', A
A = 2 A = 2
B = 3
IF(A EQ 2) AND (B EQ 3) THEN BEGIN
PRINT, 'A = ', A
PRINT, 'B = ', B
ENDIF A = 2
IF(A EQ 2) THEN BEGIN
PRINT, 'A = ', A
ENDIF ELSE BEGIN
PRINT, 'A ≠ ', A
ENDELSE
05 CASE  

只执行符合条件的一个语句块。(多条语句需要使用 BEGIN...END)
------------------------------------------------------------
 CASE expression OF           
     expression: statement(s) 
     ...                      
     expression: statement(s) 
 ENDCASE                      
------------------------------------------------------------
 CASE
expression OF           
     expression: statement(s) 
     ...                      
     expression: statement(s) 
   ELSE: satement(s)          
 ENDCASE                      
------------------------------------------------------------
 CASE
expression OF           
     expression: statement(s) 
     ...                      
     expression: statement(s) 
   ELSE: BEGIN                
     satement(s)              
   END                        
 ENDCASE                      
------------------------------------------------------------
◈ expression:判断语句
◈ statement(s):执行语句

 
  x=1
CASE x OF
1: PRINT, 'one'
2: PRINT, 'two'
ENDCASE IDL Prints:
one x=2
CASE x OF
1: PRINT, 'one'
2: PRINT, 'two'
ELSE: PRINT, 'You entered: ', x
ENDCASE IDL Prints:
two x=3
CASE x OF
1: PRINT, 'one'
2: PRINT, 'two'
ELSE: BEGIN
PRINT, 'You entered: ', x
PRINT, 'Please enter a value between 1 and 2'
END
ENDCASE IDL Prints:
You entered: 3
Please enter a value between 1 and 2
06
SWITCH

执行符合条件后面的所有语句块。       
-----------------------------------------------------------------------------------------------
 SWITCH
expression OF         
     expression: statement(s) 
     ...                      
     expression: statement(s) 
 ENDSWITCH                    
-----------------------------------------------------------------------------------------------
 
SWITCH expression OF         
     expression: statement(s) 
     ...                      
     expression: statement(s) 
   ELSE: satement(s)          
 ENDSWITCH                    
-----------------------------------------------------------------------------------------------
 SWITCH
expression OF         
     expression: statement(s) 
     ...                      
     expression: statement(s) 
   ELSE: BEGIN                
     satement(s)              
   END                               
 ENDSWITCH                   

-----------------------------------------------------------------------------------------------
◈ expression:判断语句
◈ statement(s):执行语句

 
  x=1
SWITCH x OF
1: PRINT, 'one'
2: PRINT, 'two'
ENDSWITCH IDL Prints:
one
two x=2
SWITCH x OF
1: PRINT, 'one'
2: PRINT, 'two'
ELSE: PRINT, 'You entered: ', x
ENDSWITCH IDL Prints:
two
You entered: 2 x=2
SWITCH x OF
1: PRINT, 'one'
2: PRINT, 'two'
ELSE: BEGIN
PRINT, 'You entered: ', x
PRINT, 'Please enter a value between 1 and 2'
END
ENDSWITCH IDL Prints:
two
You entered: 2
Please enter a value between 1 and 2
07 REPEAT...UNTIL  

循环语句(与 WHILE...DO 语句类似)
-----------------------------------------------------------------------------------------------
REPEAT statement UNTIL expression
-----------------------------------------------------------------------------------------------
REPEAT BEGIN
   statements
ENDREP UNTIL expression
-----------------------------------------------------------------------------------------------
◈ statement(s):执行语句
◈ expression:判断语句

 
IDL> i = 3
IDL> REPEAT PRINT, i-- UNTIL(i lt 0)
3
2
1
0 i = 3
REPEAT BEGIN
PRINT, i--
ENDREP UNTIL(i lt 0)
08 BEGIN...END  

用于显示多条语句。
-----------------------------------------------------------------------------------------------
BEGIN
   statements
END | ENDIF | ENDELSE | ENDFOR | ENDFOREACH | ENDREP | ENDWHILE
-----------------------------------------------------------------------------------------------

 
  CASE name OF
'Moe': BEGIN
PRINT, 'Stooge'
END
ENDCASE SWITCH name OF
'Moe': BEGIN
PRINT, 'Stooge'
END
ENDSWITCH
09  CONTINUE  

执行FOR、WHILE 或 REPEAT 循环语句中下一条循环。

 
  FOR I = 1,10 DO BEGIN
; If odd, start next iteration:
IF (I AND 1) THEN CONTINUE
PRINT, I
ENDFOR IDL Prints:
2
4
6
8
10
10  BREAK  

从 FOR、WHILE、REPEAT 循环、CASE 或 SWITCH 语句中跳出。

 
  i = 0
PRINT, 'Initial value: ', i
WHILE (1) DO BEGIN
i = i + 1
IF (i eq 5) THEN BREAK
PRINT, 'Loop value: ', i
ENDWHILE
PRINT, 'END VALUE: ', i IDL Prints:
Initial value: 0
Loop value: 1
Loop value: 2
Loop value: 3
Loop value: 4
END VALUE: 5
       

【217】◀▶ IDL 控制语句说明的更多相关文章

  1. Linux Shell 流程控制语句

    * 本文主要介绍一些Linux Shell 常用的流程控制语句* 1. if 条件语句:if-then/if-elif-fi/if- else-fi if [条件判断逻辑1];then command ...

  2. 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)

    一:变量 变量分为局部变量和全局变量  (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义:  declare @变量名  数据类型 (局部变量只能 ...

  3. Sql Server系列:数据控制语句

    数据控制语句用来设置.更改用户或角色的权限,包括GRANT.DENY.REVOKE等语句. GRANT用来对用户授予权限,REVOKE可用于删除已授权的权限,DENY用于防止主体通过GRANT获得特定 ...

  4. 8-04流程控制语句BEGIN ..END

     流程控制语句: 是用来控制程序流程的语句. 常用的流程控制语句的分类: 顺序结构:BEGIN...END 分支结构: IF ..ELSE 或CASE ..END 循环结构:WHILE 顺序结构 语法 ...

  5. javaScript条件控制语句

    当某段代码的执行,需要首先满足某些条件时,我们就需要用到条件控制语句.判断条件是否满足,满足条件才去执行某些代码. 如判断数组中值等于条件值时,将这个值从数组中删除 a.switch <scri ...

  6. JAVA 1.7 流程控制语句 续

    1. Java中的循环控制语句一共有3种,分别是while,do… while以及for循环.2. while循环,形式为:while(布尔表达式){//待执行的代码}3. do…while循环,新式 ...

  7. JAVA 1.6 流程控制语句

    1. 条件运算符(三元表达式),其形式为:type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;2. 轻量级的文本编辑器:UltraEdit.Edit ...

  8. leetcode 217

    217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...

  9. IDL中的HRESULT值

    IDL中的HRESULT值

随机推荐

  1. C#自定义类型数组排序

    在数组或者集合中对自定义类型进行排序分为两种方法. 1.如果这个自定义类型是自己定义编写的,那么我可以使它继承ICompareable<T>接口,实现其中的CompareTo(Object ...

  2. 为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

    为了发布博客方便,现从CSDN的naedzq整体迁移到cnblogs

  3. how to run a continuous background task on OpenShift

    https://stackoverflow.com/questions/27152438/best-way-to-run-rails-background-jobs-with-openshift ht ...

  4. Oracle中,将毫秒数转换为timestamp类型的两种方法

    在许多场景中,开发人员习惯用1970-01-01 00:00:00.000以来的毫秒数来表示具体的时间,这样可以将数据以NUMBER类型存储到数据库中,在某些时候方便比较,同样,有些时候我们需要 把这 ...

  5. EasyHLS直播在Linux非root用户运行时出现无法写文件的问题解决mkdir 0777

    今天在Github上收到一个用户反馈的EasyHLS在linux上非root用户调用时,无法写目录的问题:https://github.com/EasyDarwin/EasyHLS/issues/3, ...

  6. EasyDarwin开源流媒体服务器gettimeofday性能优化(3000万/秒次优化至8000万次/秒)

    -本文由EasyDarwin开源团队成员贡献 一.问题描述 Easydarwin中大量使用gettimeofday来获取系统时间,对系统性能造成了一定的影响.我们来做个测试: While(1) { G ...

  7. spring+mybatis多数据源,动态切换

    有时我们项目中需要配置多个数据源,不同的业务使用的数据库不同 实现思路:配置多个dataSource ,再配置多个sqlSessionFactory,和dataSource一一对应.重写SqlSess ...

  8. ssh key 生成

    1.设置好git的name和email $ git config --global user.name "姓名" $ git config --global user.email ...

  9. spring和springmvc中,Configuration注解Bean重复加载

    问题:bean重复加载1.如下代码所示,开启Configuration注解,实现Bean代码注入,发现bean重复加载 @Configuration public class EhCacheConfi ...

  10. Anroid事件分发

    因为最近因个人原因离职,面试的时候,有人问到了Android中事件分发机制的过程,因为忘得差不多了,没答好,所以回来后,想写了个Demo,重新复习一遍. 一般来说,Android的组件其实可以分为两类 ...