비전공자의 개발과 친해지기/반복문

[JAVA : 반복문]2. while문 / do while문

justdoIT0730 2022. 4. 9. 12:40
728x90
728x90

- while 문

 while 문은 for 문에 비해 간단한 구조를 가지고 있습니다. for 문은 변수 초기화, 실행 조건, 증감식 등 여러 가지 조건이 필요하지만 while 문은 오직 실행 조건만으로 동작 하게 됩니다. while 문의 사용 방법은 아래와 같습니다.

 

while( /* true 혹은 false 형태의 동작 조건 */ ) {
    // 처리 내용
}

 

 for 문에 비해 형태가 매우 간소합니다.

 

import java.io.*;
class Main {
		public static void main(String[] args) {
			int a = 1;
			while(a < 3) {
				int b = 0;
				System.out.println(a + " " + b);
				a++;
				b++;
			} // while 문 종료
		}
}

 

위 코드는 while 문을 간단하게 사용한 예시입니다.

 

  1. 변수 a 가 1 로 초기화 됩니다.
  2. 변수 a 가 while 문의 조건  a < 3 을 만족하므로 while 문이 동작합니다.
  3. while 문이 동작하면 변수 a 와 변수 b 의 값을 출력한 뒤 a 와 b 의 값을 1씩 증가 합니다.
  4. while 문 동작내용이 완료 되면 다시 while 문의 조건을 확인 합니다. 이때 a 가 2 이므로 동작 조건을 만족합니다.
  5. 2번 스텝부터 3번 스텝까지의 내용이 반복됩니다.
  6. a 가 3 이 되면 while 문의 조건을 만족하지 않으므로 while 문이 동작하지 않습니다.

 

 for 문뿐만 아니라 while 문은 동작 조건을 정확하게 명시하지 않으면 프로그램이 반복문을 빠져나가지 못하는 무한 루프 가 발생합니다.   무한 루프를 피하기 위해서는 반드시 종료 조건(탈출 조건)을 명시해주어야 합니다.

 

 

 일반적으로 for 문은 반복 횟수가 정해져 있는 경우 많이 사용하고, while 문은 특정 조건에서 반복 처리를 종료할 때 많이 사용됩니다. 

 

 

 위의 예제를 실행해 보면 변수 b의 값이 항상 0으로 출력되는 것을 볼 수 있습니다. 이유는, 변수 b는 while 문 내부에서 선언된 변수 이기 때문에 while 문이 종료되는 중괄호를 만나면, 중괄호 내부에서 선언된 변수는 메모리 해제되어 더 이상 사용할 수 없게 됩니다.

 

 그렇기 때문에 중괄호 안에서 선언한 변수는 1회전이 끝난 후 해제되어 값이 남아 있지 않기 때문에 0이 출력되게 됩니다. 이러한 변수를 "지역변수" 라고 합니다.  이러한 현상은 중괄호를 사용하는 모든 문법에서 동일하게 작용합니다. 

 

 

 

- do while 문

 

 do while 문은 while 문에서 조금 변형된 형태의 반복문입니다. 사용법은 아래와 같습니다.

 

do {
    // 처리 내용
} while( /* 처리 조건 */ );

 

 while 문과 차이점은, while 문은 처리 조건을 먼저 확인하고 처리 내용을 실행할지 하지 않을지 판단한다면, do while 문은 우선 1회 처리 한 뒤 처리 조건을 확인하여 반복 여부를 판단합니다.

 

 

import java.io.*;
class Main {
		public static void main(String[] args) {
			int a = 1;
			do {
				System.out.println(a++);
			}	while(a < 5);
		}
}

 

 위의 예제를 살펴보면, a를 출력하는 내용이 4 회 반복된 후 프로그램이 종료되는 것을 확인할 수 있습니다.

 

 처리 조건을 확인하기 전에 먼저 실행이 필요하다면 do while 문을 사용할 수 있습니다.

 

728x90
728x90