Я пытаюсь получить простую инструкцию elseif в IDL, и у меня есть время с ней. Код matlab выглядит примерно так.idl elseif problems/confusion
a = 1
b = 0.5
diff = a-b
thres1 = 1
thres2 = -1
if diff < thres1 & diff > thres2
'case 1'
elseif diff > thres1
'case 2'
elseif diff < thres2
'case 3'
end
Но код IDL не так прост, и у меня возникают проблемы с правилом синтаксиса. в помощь государства: Синтаксис IF выражение THEN оператор [ELSE оператор] или IF выражение Then Begin заявления ENDIF [ELSE НАЧАТЬ заявления ENDELSE]
Но оленья кожа привести пример о том, как использовать несколько выражений и ElseIf. Я пробовал много вариантов и, похоже, не понял.
У кого-нибудь есть предложения? Вот некоторые вещи, которые я пробовал:
if (diff lt thres1) and (diff gt thres2) then begin
print, 'case 1'
endif else begin
if (diff gt thres1) then
print, 'case 2'
endif else begin
if (diff lt thres2) then
print, 'case 3'
endif
if (diff lt thres1) and (diff gt thres2) then begin
print, 'case 1'
else (diff gt thres1) then
print, 'case 2'
else (diff lt thres2) then
print, 'case 3'
endif
Если какое-либо значение равно пороговому значению, то ни один из случаев не будет выполняться –
да, вы Я должен был сказать, что это не логика, которая вызывает у меня проблемы, но этот фактический синтаксис. IDL не будет компилироваться и выполняться с помощью c Пример, который я показываю. – nori