【217】◀▶ IDL 控制语句说明
参考: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
|
|||||
浙公网安备 33010602011771号