|
||||||||||||||||||||||||||
if-else 체인 구조는 한 개의 변수 값에 대해서 판단해야 할 사항이 3개 이상인 경우에 유용하게 사용되었다. 그러나 한 개 이상의 변수를 고려해야 하는 선택 구조를 생각할 수 있다. 다음 문제를 생각해보자. age와 height의 값에 기초하여 다음 선택사항이 존재한다: age가 10이상이면 height의 값에 따라서 행동 A나 행동 B가 선택되고, age가 10이하이면 행동 C가 선택된다. 위의 문제를 다이어그램으로 표현하면 다음과 같다. 위의 문제를 C 문장으로 어떻게 표현할 것인가? 단계별로
문제를 생각해보자.
위의 if-else 문장에서 else-부분은 행동 C로 표현할 수 있으나, then-부분을 어떻게 표현할 수 있겠는가? 위의 문제에서 then-부분은 다음과 같이 점선으로 된 내부 상자로 표현된 행동에 해당된다.
이 행동은 height에 대한 판단을 수행하는 또 다른 if-else 문장으로 표현될 수 있다. 앞서 살펴보았듯이, C의 if-else 문의 then-부분이나 else-부분에 올 수 있는 문장은 또 다른 if 문 일 수 있다. 따라서 위의 문제는 다음과 같이 C의 if 문으로 표현할 수 있다.
위에서처럼 if 문의 then-부분에 또 다른 if 문이 올 수 있는데, 이러한 if 문을 중첩된 if 문(nested if statement)이라 한다. 다음은 위 문제에 대한 알고리즘을 보여준다.
다음은 알고리즘 5-2에 대한 C 프로그램 버전을 보여준다.
|
|
|