Found an issue with the book? Report it on Github.

If 조건문

If 조건문

매우 직관적인 내용이지만 if 문과 if 표현식에 대한 구문을 간략하게 검토할 필요가 있습니다.설명하기 가장 간단한 if 표현식부터 살펴 보겠습니다. if 표현식의 형식은 다음과 같습니다.

if cexpr then expr1 else expr2;

여기서 cexpr 은 조건식(Boolean 값으로 판단함)이고 expr1cexprtrue 로 판단되는 경우에 표현식이 가질 값을 의미 합니다. expr2cexprfalse 로 판단되는 경우 표현식이 가질 값입니다.

if 문에는 다음과 같은 일반적인 구문이 있습니다.

if cond1 then
  // Statements used if cond1==true
elseif cond2 then
  // Statements used if cond1==false and cond2==true
// ...
elseif condn then
  // Statements used if all previous conditions are false
  // and condn==true
else
  // Statements used otherwise
end if;

if 문이 수식 섹션에 나타날 때 if 문을 통해 어떤 분기가 있든 관계없이 방정식의 수는 동일해야 한다는 점을 반드시 유의해야 합니다.(이것은 elseif 가 있는 경우에도 적용됩니다). 다만, 첫번째 예외는 방정식의 수가 같을 필요가 없기 때문에 else 절이 필요하지 않은 initial equation 또는 initial algorithm 섹션 내에서 if 를 사용하는 경우입니다.또 다른 주목할 만한 예외는 함수 내에서 if 를 사용하는 경우 인데, 여기서도 방정식의 수가 두 분기에서 동일할 필요는 없습니다.

특별한 경우를 살펴보면, 다음과 같은 if 문이 있는 경우입니다.

if cond then
  x = y;
else
  x = z;
end if;

두 경우 모두 x 에 값이 할당된 것을 볼 수 있는데, 이와 같이 if 표현식을 사용하여 위와 같은 수식을 작성하는 방법은 다음과 같습니다.

x = if cond then y else z;

시뮬레이션 소프트웨어가 두 번째 보인 경우와 같이 if 표현식인 경우에 코드 생성 최적화를 더 쉽게 할 수 있습니다.

Note

if 문과 if 표현식 모두에 있는 조건식은 이벤트 를 생성할 가능성이 있습니다.