Jay's Developer Note

[JAVA] 자바 언어 기본 문법 - 5(반복문) 본문

JAVA

[JAVA] 자바 언어 기본 문법 - 5(반복문)

Jay(J) 2022. 2. 12. 02:00
728x90

반복문

반복문은 조건식이 TRUE 인 동안 { } 블록 안에 있는 코드를 반복하는 문법이다.

조건식이 적절하지 않다면 무한 루프에 빠질 수가 있다. 그러니 무한 루프에 빠지지 않게 조건식을 적절히 설정해줘야 한다.

요즘 IDE 는 무한 루프에 빠질 경우 사전에 경고를 준다.

Intellij 무한 루프 경고창

반복문에는 for 문, while 문, do-while 문이 있다.

for 문

형식은 다음과 같다.

for([초기식]; [조건식]; [증감식]) {
  // 실행 코드
}

초기식, 조건식, 증감식은 생략이 가능하다. 생략할 경우 내부에 분기문이 없다면 무한 루프에 빠지게 된다.

int count = 0;

// 초기식; 조건식; 증감식 생략 가능
for (; ; ) {
  // 하지만 무한 루프.. 빠져나올 수가 없다..
  System.out.println(count++);
}

while 문도 마찬가지로 무한 루프에 빠지지 않으려면 내부에서 밖으로 나올 수 있는 코드를 추가해야 한다.

int count = 0;

for (; ; ) {
  // count 값이 10 이 넘어가는 순간 for 문을 빠져나온다!
  if (count > 10) break;
  System.out.println(count++);
}

초기식, 조건식, 증감식을 활용하여 위 코드를 재구성해보겠다.

int count;

for (count = 0; count < 10; count++) {
  System.out.println(count);
}

// 초기식 값은 보통 for 문에서만 사용하기 때문에
// 새로 선언해서 for 문 내에서만 사용하는 편이다
/*
for (int i = 0; i < 10; i++) {
  System.out.println(i);
}
*/

단순 예제를 위한 코드이다. 실제 사용할 때는 아래 주석 코드처럼 선언과 동시에 사용한다.

While 문

조건식이 TRUE 인 동안 { } 블록 안에 코드를 반복한다. 조건식을 먼저 판단하고 내부로 들어가기 때문에 조건식에 부합하지 않을 경우 한 번도 실행 안 될 수도 있다.

형식은 다음과 같다.

while (조건식) {
  // 실행 코드
}

위에 있던 예제를 while 문으로 바꿔보겠다.

int count = 0;

while (count < 10) {
  System.out.println(count++);
}

count 값이 10이 될 때까지 Log 를 출력한다.

조건식이 TRUE 면 계속 Log 를 출력하는 무한 루프에 빠지게 된다.

int count = 0;

// count 값이 0 보다 항상 크기 때문에 무한 루프..
while (count >= 0) {
  System.out.println(count++);
}

그걸 방지하기 위해 위처럼 break; 를 사용하여 분기 처리를 해준다.

int count = 0;

while (count >= 0) {
  if (count > 10) break;
  System.out.println(count++);
}
do-while 문

while 과 동일하게 동작하지만 do 안에 있는 코드를 while 을 실행하기 전에 무조건 1회 실행하기 때문에 1회는 반드시 실행된다.

형식은 다음과 같다.

do {
  // 실행 코드
} while (조건식);

 

728x90