COND 부연설명
(COND
(predicate_1 expression1)
...
(predicate_n expressionn)
[(ELSE expressionn+1)]
)
첫 #T(true)가 나올 때까지 평가
첫 번째 #T predicate의 expression 출력
pre-dection
"-------------"
|-- program --|
"-------------"
post-dection
for (int cnt = 0; cnt < 10; cnt++) // cnt가 계수기
loop body
while (control expr) // 여기서 결정 with boolean value
loop body
break; // loop 전체 out
continue; // 이번 iteration만 out
for (p = root; p == NULL; traverse(p)) // p는 tree의 node를 가리키는 ptr
loop body
goto
Dijkstra가 제안
if <Boolean expr> -> <statement>
[] <Boolean expr> -> <statement>
...
[] <Boolean expr> -> <statement>
fi
모든 expr이 평가된다. 하나라도 #T이면 return true.
'non-true'만 return false
if x >= y -> max := x
[] y >= x -> max := y
fi // 같으면 임의의 stmt 출력
위는 다음과 같다.
if (x >= y) // 더 큰 값을 출력
max = x;
else
max = y;