본문 바로가기
JAVA

5. 반복문

by 김마리님 2020. 3. 23.

반복문은 특정한 실행문을 반복적으로 할 때 쓰인다.

반복문은 for문과 while문이 있는데, 둘은 쓰이는 형태가 다르다.

 

 

1. for문

for문은 끝나야 하는 지점을 알고 만드는 반복문이다.

문법은 다음과 같다.

for(초기값, 조건문, 증감식){
       실행할 문장
}

예시를 보자.

	public static void main(String[] args) {
		for (long i = 1; i <= 10 ; i++) { 
			System.out.println(i);
		}

다음과 같이 조건문인 10보다 크거나 같기 전까지 같은 출력문을 반복한다.

이 반복문의 순서는 어떻게 되는걸까?

1. 초기값 확인

2. 초기값이 조건문과 일치하는지 확인

3. 실행문 실행

4. stack이 끝나면 증감문 실행

5. 증감된 값이 조건문과 일치하는지 확인.

 

즉, 초기값이 실행문을 다 거쳐간 후, 식이 끝날 때 증감식이 적용된다는 사실을 잊지 말자.

 

for문은 이중으로 적용이 가능하다.

다음은 for문을 이용한 구구단을 만드는 예시이다.

	public static void main(String[] args) {
	
		for (int i = 2; i < 10; i++) {
			for (int j = 1; j < 10; j++) {
				int num=i*j;
				System.out.println(i+"*"+j+"="+num);
			}
			System.out.println();
		}
	}

다음과 같이 외부 for문의 조건 일치 -> 내부 for문의 조건 확인 -> 실행문 실행 -> ........................ -> 내부 for문의 조건 거짓 -> 외부 for문의 증감 확인

의 형태로 움직이게 된다.

 

 

2. while

while문은 끝을 알 수 없을 때 사용한다. 값이 참이면 영원히 반복되며, 이를 daemon process(데몬 프로세스) 라고도 부른다.

		while(true) { 
			System.out.println(1000);
		}

다음과 같은 식의 경우 영원히 1000이라는 값을 도출하게 된다.

이렇게 될 경우 cpu의 과부하가 오며, 다른 연산을 할 수 없게 된다. 따라서 while문에 연산시간의 제한을 두는 방식으로 사용한다. 이런 daemon process와 같은 경우 주로 background 프로그램으로 사용한다. 프로세스가 영원히 실행되며 감시자의 역할을 하는데, 특별한 이벤트가 있을 경우, 이를 알리게 된다. 이를 듣는 프로그램이 있는데. 이를 listener이라고 한다. 이 listener의 경우 역시 언제 올 지 모르는 특별한 이벤트를 기다리기 때문에, 계속 구동되는 프로세스여야만 한다.

반응형