IDL 可能会因 if 语句而有点过度使用。正如您所说,基本的“if then else if then”语句可能类似于:
if a eq 0 then print, 'the variable a equals 0' else $
if a eq 1 then print, 'the variable a equals 1' $
else print, 'the variable is something else'
对于 if 语句中的多行,您可以使用以下内容,而不是使用 $ 来继续该行:
if a eq 0 then begin
print, 'the variable a equals 0'
print, 'more stuff on this line'
endif else if a eq 1 then begin
print, 'the variable a equals 1'
print, 'another line'
endif else begin
print, 'a is something else'
print, 'yet another line'
endelse
最后,评估变量是否在向量中取决于您想要做什么以及数组中的内容,但一种选择是使用 where 函数。一个例子来展示它是如何工作的:
a=2
b=[1,2,2,3]
result = where(a eq b)
print, result
if result[0] ne -1 then print, 'a is in b' $
else print, 'a is not in b'
可能还有更好的方法来做到这一点。也许是一个案例陈述。