我正在尝试在IDL中进行多行循环,但它不起作用,这是我的第一个程序:
for n=0,5 do begin
print, n
给出了这个输出:
6
这是我的第二个项目:
for n=0,5 do begin
print, n
endfor
会出现以下错误:
endfor
^
% Syntax error.
我希望程序提供此输出:
0
1
2
3
4
5
由于
答案 0 :(得分:1)
编写多行FOR
循环的正确方法确实是:
for n=0,5 do begin
print, n
endfor
但IDL不接受在所有上下文中使用BEGIN
/ END
块的多行语句。例如,不是直接在命令行。如果要在命令行中执行此操作,则需要通过执行以下操作来创建小型主级程序:
IDL> .run
for n=0,5 do begin
print, n
endfor
end
您还可以在过程或函数中使用FOR
循环。
答案 1 :(得分:1)
正如上面的@SofCh所建议的,我只是使用延续字符来完成此操作
for n=0,5 do begin $
print, n & $
endfor
答案 2 :(得分:0)
如果您是在命令行中编写的,则可能需要在“ DO BEGIN”行的末尾添加“&”或“&$”。这表明循环在下一行继续。
但通常也很容易将其压缩为一行,例如
for n = 0,5 do print, n