본문 바로가기

Java/Java

제어문_반복문

1. 반복문이란?

반복문은 어떤 특정한 명령문들이 반복적으로 실행되도록 할 때 사용된다. 

반복문의 종류로는 for문, while문, do-while문이 있다. 

 

for문과 while문 중 어떤 것을 사용해서 반복문을 작성해서 상관은 없다.

그러나 for문은 필요한 반복횟수를 알고 있을 때 사용하는 것이 좋으며, while은 조건에 따라 반복해야할 때 사용하는 것이 좋다.

 

while문과 do-while문은 조건을 먼저 검사하느냐, 명령문을 먼저 실행하느냐에 대한 차이만 존재하며 나머지 방식은 동일하다.

while문은 조건을 먼저 검사하고, do-while문은 명령문을 먼저 실행한다.

 

 

2. for문

for문은 필요한 반복 횟수를 알고 있을 때 유용한 반복문이다. 

  • for(초기화식; 조건식; 증감식)
  • for문의 초기화식, 조건식, 증감식에 사용되는 변수를 루프 카운터 변수라고 한다.
  • 초기화식은 루프 카운터 변수의 시작 값을 설정하며, 루프 카운터 변수에 대한 조건식이 참값일 때 계속 반복하고 false일 때 정지한다. 그리고 루프 카운터 변수는 증감식에 따라 그 값이 변화한다.
  • 루프 카운터 변수는 초기화식에서 초기화할 수 도 있고, for문 작성 전에 초기화할 수도 있다(for문에서 생략 가능).
  • 루프 카운터 변수로 float 타입을 사용해서는 안된다. 실수를 정확히 표현할 수 없으므로 의도하지 않은 반복이 발생한다.
public class ForSumFrom1To100Example1 {

	public static void main(String[] args) {
		int sum = 0; //for문 밖에서 sum 변수를 사용하기 위해 이곳에 선언.
		
		for(int i = 1; i <= 100; i++) {
			sum += i;
		}
		
		System.out.printf("1~100의 합: %d", sum);

	}

}



///////////////////////////////////////////////////////////////////////

public class ForSumFrom1to100Example2 {

	public static void main(String[] args) {
		int sum = 0;
		
		int i = 0; //변수 i를 for문 전에 선언할 경우, for문 내부와 외부에서 모두 사용 가능하다.
		for(i = 1; i <= 100; i++) {
			sum += i;
		}
		
		System.out.printf("1~%d의 합: %d", i - 1, sum);

	}

}


////////////////////////////////////////////////////////////////////

public class ForFloatCounterExample {

	public static void main(String[] args) {
		// float 타입은 0.1을 정확하게 표현할 수 없다. 이처럼 float 타입은 숫자를 정확히 표현할 수 없기 때문에, 카운트 변수로는 사용하지 말아야한다.
		for(float x = 0.1f; x <= 1.0f; x += 0.1f) {
			System.out.println(x);
		}
		// float 타입 0.1f는 0.1보다 약간 큰 값을 표현한다. 따라서 10번이 아닌 9번이 프린트된다. 
	}

}​ 

 

for문 내부에 또 다른 for문을 작성할 수 있다.

public class ForMultiplicationTableExample {

	public static void main(String[] args) {
		for (int m = 2; m <= 9; m++) {
			System.out.printf("*** %d단 ***\n", m);
			for(int n = 1; n <= 9; n++) {
				System.out.printf("%d X %d = %d\n", m, n, m*n);
			}
			System.out.println();
		}

	}

}

 

 

3. while문 

while문은 조건에 따라 반복하고 싶을 때 유용한 반복문이며, 조건식이 true일 때 반복하고 false일 때 종료된다. 

do-while문도 방식은 똑같으며, 명령문을 먼저 실행한 뒤 조건식을 검사한다는 것만 차이가 있다.

public class WhileSumFrom1To100Example {

	public static void main(String[] args) {
		int sum = 0;
		
		int i = 1;
		
		while (i<=100) {
			sum += i;
			i++;
		}

		System.out.printf("1~100의 합: %d", sum);
	}

}

 

 

4. break, continue

break는 반복문인 for, while, do-while문을 정지할 때 사용되며, 조건식 중 switch문에도 사용된다.

break문은 일반적으로 if문과 함께 사용되며, if문의 조건식이 true일 때 break를 실행하는 방식으로 사용된다.

만약 반복문이 중첩되어 있을 경우, break문은 가장 가까운 반복문만 종료하며, 외부의 반복문을 종료하고 싶을 경우 외부 반복문과 break에 동일한 라벨을 사용해주면 된다. 

public class BreakOutterExample {

	public static void main(String[] args) {
		//for문에 Outter 라벨을 붙여줌. 
		Outter: for(char upper = 'A'; upper <= 'Z'; upper++) {
			for(char lower = 'a'; lower <= 'z'; lower++) {
				System.out.printf("%c-%c\n", upper, lower);
				if(lower == 'g') {
					break Outter; //Outter 라벨이 붙은 반복문을 종료함.
				}
			}
		}
		
		System.out.println("프로그램 종료!");
	}

}

 

continue문은 반복문의 종료가 아닌 for문의 증감식, while문과 do-while문의 조건식으로 이동하여 다음 반복을 실행하고 싶을 때 사용한다.

break문과 마찬가지로 if문과 함께 사용되며, if문의 조건식이 true일 때 반복문의 첫 부분으로 돌아가 다음 반복을 실행하는 방식으로 사용된다.

public class ContinueExample {

	public static void main(String[] args) {
		for(int i = 1; i <= 10; i++) {
			if(i%2 != 0) {
				continue;
			}
			System.out.println(i);
		}

	}

}

 

출처: 혼자 공부하는 자바(신용권)

 

'Java > Java' 카테고리의 다른 글

배열  (0) 2021.10.12
참조타입, 참조변수  (0) 2021.10.11
제어문_조건문  (0) 2021.09.30
연산자  (0) 2021.09.19
타입 변환  (0) 2021.09.14