if-else 체인 구조는 한 개의 변수 값에 대해서 판단해야 할 사항이 3개 이상인 경우에 유용하게 사용되었다. 그러나 한 개 이상의 변수를 고려해야 하는 선택 구조를 생각할 수 있다.

다음 문제를 생각해보자. age와 height의 값에 기초하여 다음 선택사항이 존재한다: age가 10이상이면 height의 값에 따라서 행동 A나 행동 B가 선택되고, age가 10이하이면 행동 C가 선택된다.

위의 문제를 다이어그램으로 표현하면 다음과 같다.

위의 문제를 C 문장으로 어떻게 표현할 것인가? 단계별로 문제를 생각해보자.
먼저, age에 대한 판단을 수행하는 다음 if-else 구조를 생각한다.

 

위의 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)이라 한다.

중첩 if 문의 예로서 다음 문제를 생각해보자.

다음은 위 문제에 대한 알고리즘을 보여준다.

 
알고리즘 5-2
 
 

     age와 height를 읽어들인다.
     IF (age ≥ 10이면) THEN
          IF (height ≥ 120이면) THEN
               "Option A is allowed"를 출력한다.
          ELSE
               "Option B is allowed"를 출력한다.
          ENDIF
     ELSE
          "You are not allowed to enter"를 출력한다.
     ENDIF

 
     

 

 
다음은 위 알고리즘에 대한 순서도를 보여준다.

다음은 알고리즘 5-2에 대한 C 프로그램 버전을 보여준다.

다음 실습 창을 통해서 위의 프로그램을 실행시켜본다.

사용법
1.실습창의 실행 버튼을 클릭하여 프로그램을 실행 합니다.
2.오른쪽 단계별 실행버튼을 클릭해 가며 프로그램을 한단계씩 실행합니다.
3.모든 단계별 실행 종료시 왼쪽의 재실행 버튼을 클릭하여 다양한 변수를 입력하며 프로그램의 단계별 실행 상태를 확인합니다.
 

 


top으로... 다음페이지로.. 이전페이지로.. home으로..