4.문법 기초


4.8 반복문

  역시 컴퓨터에게 뭔일을 시키기에 가장 적절한 일은 단순 반복적인 일이다.

  자바의 반복문은 다음과 같은 3가지 방식이 있으며, 문법적으로는 거의 C나 C++언어와 동일하다.

  • for
  • while
  • do while
  자 이제 하나씩 살펴보도록 하자.
  • for

      거의 비슷한 조상들을 가진 언어들, 베이직, 포트란, C, C++, JAVA는 반복문으로 for 구문을 지원한다. 기본적인 문법의 구조는 다음과 같다.

    for(초기화; 비교구문; 증감){
        ............
    }

      위의 구문을 설명하는거 보다 바로 예를 보는 편이 낳겠다. 다음 예는 0부터 4까지 1씩 증가시켜가면서 그 값을 출력하는 예이다.

    class test{
        public static void main(String[] args){
           for(int i = 0;i < 5;i++){
              System.out.println(" Count : " + i);
           }
        }
    }
    Count : 0
    Count : 1
    Count : 2
    Count : 3
    Count : 4


      위의 결과를 간단히 설명하면, 먼저 초기 값 부분에 int i = 0; 이라는 문장이 나타난다. i 라는 정수형 변수를 선언하면서, 초기 값으로 0이라는 값을 준 것이다.

    변수 선언 위치   FORTRAN이나 C언어에서는 변수를 사용하기 전에 상단에서 모든 사용될 변수를 선언하도록 하고 있다. 그러나 C++로 넘어오면서 필요한 시점에 변수를 선언하도록 변경되었으며, 자바도 이러한 점을 따르고 있다.

      이 초기화 부분은 처음에 딱 한번만 수행이 된다. 따라서 for문장을 수행하는 맨 처음에 i0이라는 값을 가지고 시작하게 된다.

      두번째가 비교구문인데, 이 부분은 for문장 안에 있는 구문 즉, 위의 예에서는 System.out.println(..) 부분을 실행할지 말지를 결정하게 되는 부분이다. 이 비교구문이 true가 되면 for문 안으로 들어가고, false가 되면 for문을 빠져나가게 되는 것이다.

      즉, 다음과 같은 문장의 경우 한번도 실행되지 않는다.

    for(int i = 1;i < 1;i++) { .... }

      계속 따라가 보면, 현재 i0이므로 true가 되어 현재값을 출력한다. 출력한 후에 for문의 끝인 괄호(})를 만나게 된다. 그럼 다시 for문의 시작 점으로 되돌아 온다. 이때, i++부분이 실행된다. 즉, 원래값이 0 이었으므로 1을 증가시켜 i1로 만들게 된다.

      다시 for문으로 들어가기 위해서 비교구문을 검사하게 된다. i1i < 5true가 되고 for문 안으로 다시 들어간다. 이런식으로 실행되다가 i값이 5값이 되며, 비교 구문이 false값을 가지게 되므로 for문에서 비로서 빠져나오게 된다.

      다음과 같이 비교 하는 부분(중간부분)이 항상 true가 되도록 하거나, 아예 작성하지 않으면 된다. 즉, 다음과 같은 구문들은 모두 무한 루프이다.

    for(int i = 0;1>0 ;i++){
        .........
    }
    for(int i = 0; ; i++){
        .........
    }
    for(;;){
        .........
    }

      for문은 주로 반복해야할 회수를 지정하여 무한 루프에 빠지지 않도록 할 때 사용된다.

- Last Update : 2002.06.17 by Deadfire(http://www.deadfire.net)

Java 언어 기초
서 언
Install
First Example
문법기초
     - 주석
     - 구분자
     - 명명규칙
     - 리터럴
     - 변수(기본타입)
     - 형변환
     - 연산자
     - 조건문
     - 반복문

Copyright ⓒ 1997 ~, Deadfire Program Master