參考: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
|
|||||
