반복문은 영어로 loop라고 부르며, 반복문을 수행하는 것을 '루프가 돈다'라고 표현하기도 합니다.

 

반복문을 사용하는 이유 : 예를 들어 1에서 100까지 더하기 위한 반복적인 코드를 쉽게 작성하기 위해 사용됩니다.

 

반복문의 종류로는 while, do-while, for문이 존재합니다.

  1. while문은 조건이 참이라면 계속해서 while문 안에 있는 실행문을 반복합니다.
  2. do-while문은 while문과 동일한 방식을 따르지만 다른 점은 조건을 따지기 전 실행문을 1번 먼저 실행합니다.
  3. while문의 조건이 true라면 무한 루프가 동작합니다.

for문은 반복문 중에서 가장 많이 사용되는 반복문입니다.

 

for문의 각 요소를 알아두면 쉽게 사용할 수 있을 것이라고 생각합니다.

  1. 초기화식 : for문이 시작할 때 한 번만 수행하여 해당 변수를 초기화합니다.
  2. 조건식 : for문이 언제까지 반복할 것인지를 정합니다. (true or false에 해당해야 합니다.)
    1. true인 경우에는 while에서 처럼 실행문 A를 반복합니다.
    2. false인 경우 for문을 종료하고 실행문 B를 출력합니다.
    3. 아래 예시에서는 조건식에 '<='를 사용하긴 했지만 실제로는 '<'를 더 많이 사용합니다.(배열 인덱스와 관련)
  3. 증감식 : 반복 횟수나 for문에서 사용하는 변수 값을 1만큼 늘리거나 줄입니다.
  4. for문의 수행 순서 : 1. 초기화식 -> (조건식 -> 실행문 A -> 증감식) -> 조건식[false] -> 실행문 B
    1. 반복문 과정에서 매번 조건식에서 true & false를 확인하고 true인 경우에는 반복, false인 경우에는 종료.
  5. 각 요소들은 생략이 가능합니다.
  6. 반복문은 중첩이 가능합니다. 중첩된 반복문의 경우에는 외부 반복 수행 후 내부 반복 수행 과정으로 진행됩니다.
  7. 자바에서는 배열을 쉽게 출력하기 위한 향상된 for문을 제공해줍니다.(우측 for문)
    1. 향상된 for문에는 초기화와 종료 조건 없이 배열을 시작부터 끝까지 실행한 후 종료합니다.
    2. 향상된 for문은 for문과 다르게 ;(세미콜론)이 아니라 :(콜론)을 사용합니다.
    3. 데이터 타입은 출력할 형태의 데이터 타입을 작성하면 됩니다. 다차원 배열이라면 배열 형태로의 출력도 가능합니다.
    4. 해당 내용은 배열을 공부한 다음 사용하는 것을 추천합니다.
public class LoopTest {
	public static void main(String[] args) {
 		
		//while문
		int num = 1;
		int sum = 0;
        
		//do-while문
		int num2 = 1;
		int sum2 = 0;
        
		//for문
		int num3 = 1;
		int sum3 = 0;
        
		//향상된 for문
		String[] hobby = {"soccer", "bowling", "baseball"};
        
		//while문(1 ~ 10까지의 합) / 실행문A와 증감식의 순서를 바꾸면 결과는 달라집니다.
		while(num <= 10) {
			sum += num; // 실행문A
			num++;	  // 증감식
		}
		System.out.println(sum); // 55
        
		//do-while문
		do {
			sum2 += num2; // 실행문
			num2++;	  // 증감식
		} while(num2 <= 10);
		System.out.println(sum2); // 55
        
		//for문(1 ~ 10까지의 합)
		for(num3 = 0; num3 <= 10; num3++) {
			sum3 += num3;
		}
		System.out.println(sum3); // 55
        
		//향상된 for문
		for(String hb : hobby) {
			System.out.println(hb);
		}
		//출력 결과
		//soccer
		//bowling
		//baseball
	}
}

'백엔드 > JAVA' 카테고리의 다른 글

제네릭(Generic) 문법과 Optional 클래스  (0) 2021.08.22
배열  (0) 2021.08.21
[JAVA] 조건문(if문과 switch-case문)  (0) 2021.03.09
[JAVA] 연산자  (0) 2021.03.07
[JAVA] 자료형, 데이터 타입  (0) 2021.03.07