논리 또는와 함께 '같지 않음'을 사용하는 방법에서 만약에 하고 싶은 말 만약에 myParameter 같지 않다 Parameter1 또는 Parameter2로 변경한 다음 무언가를 반환합니다.하지만 내 다음 기능이 예상대로 작동하지 않습니다.,. 내가 잘못 가고 있는 곳
Names Default To Here(1);
myFunc = function ({myParameter}, {default local},
If (myParameter != Or("Parameter1","Parameter2"),
return(Eval Insert("output some msg")),
);
);
clear log ();
//output = myFunc ("Parameter1");<BR />output = myFunc ("notParameter1");<BR />
스크립팅Re: '같지 않음'을 논리적 or와 함께 사용하는 방법안녕 @네오 ,
문제는 "or" 논리 연산자를 호출하는 방법에 있을 수 있습니다. JSL에서 논리 or는 이 문자 | . 따라서 If() 문을 다음과 같이 변경하면 작동합니다.
Names Default To Here( 1 );
MyFunc = Function( {Myparam},
If(
(Myparam != parm1 | Myparam != parm2), Return( Eval Insert( "Output some msg" ) )
)
);논리는 이 두 가지 중 하나만 참이면 결과를 반환한다는 점을 명심하십시오. Myparam이 그 중 하나이면 여전히 메시지를 반환합니다.
도움이 되었기를 바랍니다!,
DS
Re: '같지 않음'을 논리적 or와 함께 사용하는 방법또는 사용하려는 경우 허용된 매개변수 목록이 증가하면 비교가 매우 길어지고 유지하기가 귀찮습니다. 따라서 !Contains 및 허용된 매개변수 목록(또는 연관 배열)을 사용합니다.
Names Default To Here(1);
myFunc = Function({myParameter},
{default local},
ok_parameters = {"Parameter1", "Parameter2"};
If(!Contains(ok_parameters, myParameter),
Return(Eval Insert("^myParameter^ not in list ^ok_parameters^"));
,
Return(Eval Insert("^myParameter^ in list ^ok_parameters^"));
);
);
output = myFunc("Parameter1");
Show(output);
output = myFunc("notParameter1");
Show(output);
하지만 다음은 or/and를 사용할 수 있습니다(|는 or를 의미합니다).
Names Default To Here(1);
myFunc = Function({myParameter},
{default local},
If(!(myParameter == "Parameter1" | myParameter == "Parameter2"),
return(Eval Insert("output some msg"));
);
);
output = myFunc("Parameter1");
show(output);
output = myFunc ("notParameter1");
show(output);Re: '같지 않음'을 논리적 or와 함께 사용하는 방법당신은 아마도 이것을 의미합니다 (내가 가장 좋아하는 것)
if ( (myParameter != Parameter1) & (myParameter != Parameter2) , ...
이것은 이것과 동일합니다
if( ! ( (myParameter == Parameter1) | (myParameter == Parameter2) ), ...
또는 or() 함수를 사용하는 방식과 동일합니다.
if( !or(myParameter==Parameter1, myParameter==Parameter2), ...
https://en.wikipedia.org/wiki/De_Morgan%27s_laws
또한 누락된 값이 있는 경우 예상한 대로 비교하지 않기 때문에 isMissing()으로 처리해야 합니다.