參考: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 | 循環語句。 |
|||
IDL> FOR i = 1, 10, 4 DO PRINT, i 1 5 9 FOR i = 1, 10, 4 DO BEGIN PRINT, i ENDFOR |
|||||
02 | FOREACH | 循環語句。 |
|||
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 | 循環語句。 |
|||
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 | 選擇語句 |
|||
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) |
|||
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 |
|
執行符合條件后面的所有語句塊。 |
||
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 語句類似) |
|||
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 | 用於顯示多條語句。 |
|||
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 |
|||||