자바[JAVA] – 6. 반복문(Loop statement)

반복문(Loop Statement)조건이 맞을 시 실행 코드를 반복하는 명령어이다.
반복문에는 for문과 while문 2가지가 있다.

● for문

for문 사용

for문은 위와 같이 초깃값과 조건 그리고 증가치를 사용하게 된다.

Java
for(int i = 0; i < 10; i++)  // int i 를 선언 후 1로 초기화 i가 10보다 작을 때 i를 ++만큼 증가시킨다.
	System.out.println(i);

만약 int i = 0; 으로 이미 선언되어 있고, 2씩 증가시키고 싶으면 아래와 같이 할 수 있다.

Java
int i = 0;

for(; i < 10; i+=2)
	System.out.println(i);

무한 루프를 돌리기 위해서는 아무것도 써주지 않으면 된다.

Java
for(;;)
	System.out.println("무한 루프입니다.");

● for each

for each문 사용

for each문은 배열이나 컬렉션, 열거와 같이 ‘집합체‘의 경우 그 집합에 대해 반복하는 명령어이다.
단 여기서 변수명과 반복 객체의 자료형이 같아야 한다!

Java
int[] number = {1, 2, 3, 4, 5};
        
for (int num : number)  // int number라는 배열을 num에 넣어서 반복
  System.out.println(num);

위처럼 int형 배열을 반복하기 때문에 변수명도 int로 선언되었다.

Java
enum Rainbow {
  RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET,
}

for (Rainbow rainbow : Rainbow.values())  //  참조형 enum을 반복하므로 자료형 enum을 사용
  System.out.println(rainbow);

위처럼 enum의 경우 ‘객체명.values()’ 라는 명령어를 사용한다.

● while 문

while문 사용

while문은 for문과 마찬가지로 반복문이다.
하지만 while문은 단지 ‘조건’만 가지고 있고,
초기 값과 증가치를 선언할 수 없다.

Java
while(true)
	System.out.println("무한 루프입니다.");

하지만 for문처럼 코딩할 수 있다.

Java
int i = 0;     // 초기 값

while(i < 10){     // 조건
	System.out.println(i);
	i++;     // 증가치
}

● do while 문

do while문 사용

do while문은 while문과 같은 반복을 하는 반복문이지만
다른 점은 do 안에 있는 코드는 최소 1번 실행한다.
그 후 조건이 성립하면 실행 아니면 탈출하게 된다.

Java
int i = 100;     // 초기 값

do{     // 조건
	System.out.println(i);
	i++;     // 증가치
}while(i < 10);

=> 100

● 이중 반복문

for문 혹은 while문을 두 번 사용해서 이중으로 반복문을 만들 수 있다.

Java
for(int i = 1; i < 10; i++){     // 1-9까지
  for(int j = 1; j < 10; j++)     // 1-9까지
    System.out.println(i + " x " + j + " = " + (i * j));     // i단에 1-9까지 곱하기
  System.out.println("");     // 각 단마다 한 줄씩 띄어쓰기
}

위처럼 for문 두 개로 구구단을 만들 수 있다.

● 명령어

break와 continue 2가지가 있다.

‘break’ : 실행 중인 반복문을 탈출한다.

‘continue’ : 진행 중인 반복문을 건너뛰고(실행 해야 하는 코드 전부) 다음 반복문으로 넘어간다.

Java
for(int i = 0;;i++){
  if(i == 100)     // 만약 i가 100이면
		break;     // for문을 탈출

	if(i % 2 == 0)     // 만약 i가 2의 배수이면
		continue;     // 	System.out.print(i + " "); 무시하고 다시 for문 실행

	System.out.print(i + " ");
}

=> 1 3 5 ... 99

Leave a Comment