ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4. 자바 배열과 반복문 (5) while
    자바(Java) 강의 2019. 3. 24. 04:22

    이번 포스트에선 자바에서 제공하는 반복문 중 하나인 while문에 대해서 알아보도록 한다.

    예상 독자

    목표

    • while문
    • break

    while문

    while문은 for문 처럼 자바가 제공하는 반복문 중 하나이다. 문법은 아주 간단하다.

    while ( 논리식 ) {

    }

    괄호 안의 논리식이 true인 동안 while은 내부 블록을 계속해서 반복한다.

    예를 들어 아래를 보자.

    public class Main {
    public static void main(String[] args) {
    while (true) {
    System.out.println("이것은 무한루프.");
    }
    }
    }

    괄호 안이 true이므로 while은 해당 블록을 계속 반복 할 것이다. 이렇게 영원히 반복하는 반복문을 무한루프라고 부른다. 다른 예를 보자.

    public class Main {
    public static void main(String[] args) {
    char[] numbers = {'a', 'b', 'c', 'd', 'e', 'f'};
    int i = 0;
    while(i < numbers.length) {
    System.out.println(numbers[i]);
    i++;
    }
    }
    } 실행 결과: a b c d e f

    위의 코드는 i가 배열의 길이보다 작은동안 반복한다, 그리고 반복 하나가 끝나기 전에 i를 1 증가한다. 따라서 i는 언젠가 numbers배열의 길이보다 커질 것이도 while문은 종료 될 것이다. 위와 똑같은 기능을 하는 코드를 for문으로 작성 할 수 있다.

    public class Main {
    public static void main(String[] args) {
    char[] numbers = {'a', 'b', 'c', 'd', 'e', 'f'};
    for(int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
    }
    }
    }

    위 처럼 for문으로 작성 할 수 있는 코드는 while문으로도 작성 할 수 있다. 또 while문으로 작성 할 수 있는 코드는 for 문으로도 작성 할 수 있다. 상황에 따라서 더 적합한 것을 쓰면 된다. for문은 보통 i처럼 인덱스 값에 의존하는 경우 많이 쓰고 while은 그렇지 않은 경우 많이 쓴다.

    break

    반복을 하던 도중 반복문을 중단하고 나가고 싶다면 어떻게 하겠는가? 그럴 떄 바로 break를 써서 나갈 수 있다.

    public class Main {
    public static void main(String[] args) {
    int i = 0;
    while(true) {
    if(i == 10) {
    break;
    }
    System.out.println("i = " + i);
    i++;
    }

    System.out.println("끝.");
    }
    } 실행 결과: i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 끝.

    위처럼 break를 이용하면 반복문 중간에 빠져나올 수 있다. while뿐만 아니라 for문에도 해당된다.

    public class Main {
    public static void main(String[] args) {
    char[] numbers = {'a', 'b', 'c', 'd', 'e', 'f'};
    for(int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
    if(numbers[i] == 'd') {
    break;
    }
    }

    System.out.println("끝.");
    }
    }
    실행 결과: a b c d 끝.

    이 외에도 do-while또 goto 문으로 반복 할 수 있지만 거의 쓰이지 않으므로 생략하겠다. 거의 쓰이지 않기도 하고 권장되지 않는 문법이기도 하다. 다음 포스트에서는 함수에 대해 알아보도록 하겠다.

    다음 포스트:5. 자바 메서드

    댓글

f.software engineer @ All Right Reserved