앞에서 살펴본 반복 구조의 실행은 반복 조건이 만족되면, 본체 전체를 수행하고 다음번째 반복으로 이동한다. 그러나 조건에 따라서 본체를 수행하지 않거나 본체 일부만을 수행하고 다음번째 반복으로 이동하는 것이 필요할 수 있다.

또한, 반복 조건 판단에 의하지 않고 본체 수행시 반복 구조 실행을 중단하고 탈출하는 것도 필요할 수 있다.

C언어는 이 두 가지 경우 모두를 표현할 수 있는 문장을 제공한다. break 문은 본체 수행시 반복 구조의 실행을 중단하고 탈출할 때 사용되며, continue 문은 본체 전체나 일부를 수행하지 않고 다음번째 반복으로 이동하는데 사용된다.

1. break 문

앞서 살펴본 프로그램 6-1-2를 다시 한번 살펴보자.

       
 

     #include <stdio.h>
     main()
     {
           int n, count = 0, sum = 0;
           while( count < 10 ) {
                scanf("%d", &n);
                sum = sum + n;
                count = count + 1;
      }
            printf("%d\n", sum);
      }

 
     

위의 프로그램은 while 문의 각 반복에 대해서 한 개의 정수를 읽어들여서 합을 계산한다. 만약, 읽어들인 값이 특정 값인 999이면 while 문의 반복 수행을 중단하고 탈출한다고 생각하자. 이러한 행동을 어떻게 표현할 것인가? 다음은 이러한 행동을 프로그램 6-1-2의 while 문에 포함시킨 while 문의 구조를 보여준다.

위의 while 문의 반복 구조는 while 문을 탈출할 수 있는 경로 2가지를 보여준다. 첫 번째 경로가 while 문의 조건 식에서 count의 값이 10이상인 경우이고, 두 번째 경로는 본체 수행시에 읽어들인 정수 n이 999인 경우이다.

따라서 while 문 수행 도중에, 사용자가 999를 입력하여 10번 반복을 수행하지 않고 while 문을 빠져나올 수 있다.

다음 프로그램 6-1-3은 break 문을 사용하여 두 번째의 while 문 탈출을 표현한다.

       
 

     #include <stdio.h>
     main()
     {
           int n, count = 0, sum = 0;
           while( count < 10 ) {
                scanf("%d", &n);
                if ( n == 999 )
                       break;
                sum = sum + n;
                count = count + 1;
      }
            printf("%d\n", sum);
      }

 
     

 

 

[프로그램 단위 입력 실행] 다음 실습창을 통해서 프로그램 6-1-3의 실행과정을 알아본다

(여러분은 실습창의 왼편에 위치한 '새프로그램 입력' 버튼을 클릭하여 새로운 프로그램을 입력하여 실행시켜 볼 수 있다. )

 

[문장 단위 입력 실행] 여러분은 다음 실습창에서 C 프로그램을 한 문장씩 입력하여 실행시켜  볼 수 있다. 새로운 프로그램을 한 문장씩 입력하고 오른쪽 창에서 그 실행 결과를 살펴 보시오.

사용법

1.아래의 실습창중 < C 문장 입력 > 란을 통하여 C문장 한문장씩 입력하고 Enter 키입력 버튼을 클릭하 면 해당 문장에 대한 시각화가 오른쪽에 나타나게 됩니다.
2.제어문장(while,for,if~else,do~while)은 아래의 실습창중 < 제어구조 문장 입력 >을 통하여 입력하고 제어구조 입력 버튼을 클릭하게 되면 새로운 창이 생성되어 제어구조문장 내부를 단계별로 실행할수 있습니다.
3.scanf()함수 호출시 조그만 새로운창이 생성되어 입력받게 됩니다.
4.
printf()
함수실행은 오른쪽실습창 하단 < printf 실행 창 >에 나타나게 됩니다.
5.while 제어구조문내부에 if구조가 중첩되어 있는 경우에 여러분은 while문 내부의 if구문을 수행시에 다른 새로운 창을 통하여 자세하게 if문 내부를 단계별로 수행할수 있습니다.
6.여러분의 실습에 앞서 필히 자세한 사용법을 살핀후에 실습에 임해 주시기 바랍니다.

자세한 사용법은 여기를 클릭하여 주십시요

 

2. continue 문

위의 프로그램 6-1-2를 다시 한번 생각해보자. while 문의 본체 수행시에 읽어들인 값들 중에서 단지 양의 정수 값만을 합한다고 생각해보자. 즉, 0이나 음수를 읽어들인 경우에는 그 값을 sum에 합하지 않고 다음번째 반복으로 이동한다.

다음은 이러한 행동을 프로그램 6-1-2의 while 문에 포함시킨 while 문의 구조를 보여준다.

여러분은 while 문의 한 반복을 종료하는 경로가 2가지임을 볼 수 있다. 한 경로는 본체에서 읽어들인 n의 값이 양수일 경우이고, 다른 한 경로는 n이 0이거나 음수인 경우이다.

n의 값이 양수인 경우에는 n을 sum에 합하는 문장을 수행하고 count의 값을 1 증가시킨 후에 다음 반복으로 이동하고, 그렇지 않은 경우에는 이 두개의 문장을 건너뛰어 직접 다음 반복으로 이동한다.

다음 프로그램 6-1-4는 continue 문을 사용하여 n이 양수가 아닐 경우에 본체의 일부를 건너뛰는 것을 효과적으로 표현한다.

       
 

     #include <stdio.h>
     main()
     {
           int n, count = 0, sum = 0;
           while( count < 10 ) {
                scanf("%d", &n);
                if ( n <= 0)
                       continue;
                sum = sum + n;
                count = count + 1;
      }
            printf("%d\n", sum);
      }

 
     

 

 

[프로그램 단위 입력 실행] 다음 실습창을 통해서 프로그램 6-1-4의 실행과정을 알아본다

(여러분은 실습창의 왼편에 위치한 '새프로그램 입력' 버튼을 클릭하여 새로운 프로그램을 입력하여 실행시켜 볼 수 있다. )

 

[문장 단위 입력 실행] 여러분은 다음 실습창에서 C 프로그램을 한 문장씩 입력하여 실행시켜  볼 수 있다. 새로운 프로그램을 한 장씩 입력하고 오른쪽 창에서 그 실행 결과를 살펴 보시오.

사용법

1.아래의 실습창중 < C 문장 입력 > 란을 통하여 C문장 한문장씩 입력하고 Enter 키입력 버튼을 클릭하 면 해당 문장에 대한 시각화가 오른쪽에 나타나게 됩니다.
2.제어문장(while,for,if~else,do~while)은 아래의 실습창중 < 제어구조 문장 입력 >을 통하여 입력하고 제어구조 입력 버튼을 클릭하게 되면 새로운 창이 생성되어 제어구조문장 내부를 단계별로 실행할수 있습니다.
3.scanf()함수 호출시 조그만 새로운창이 생성되어 입력받게 됩니다.
4.
printf()
함수실행은 오른쪽실습창 하단 < printf 실행 창 >에 나타나게 됩니다.
5.while 제어구조문내부에 if구조가 중첩되어 있는 경우에 여러분은 while문 내부의 if구문을 수행시에 다른 새로운 창을 통하여 자세하게 if문 내부를 단계별로 수행할수 있습니다.
6.여러분의 실습에 앞서 필히 자세한 사용법을 살핀후에 실습에 임해 주시기 바랍니다.

자세한 사용법은 여기를 클릭하여 주십시요

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

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