반복문(Loop Statement)은 조건이 맞을 시 실행 코드를 반복하는 명령어이다.
반복문에는 for문과 while문 2가지가 있다.
● for문
for문은 위와 같이 초깃값과 조건 그리고 증가치를 사용하게 된다.
for(int i = 0; i < 10; i++) // int i 를 선언 후 1로 초기화 i가 10보다 작을 때 i를 ++만큼 증가시킨다.
System.out.println(i);
만약 int i = 0; 으로 이미 선언되어 있고, 2씩 증가시키고 싶으면 아래와 같이 할 수 있다.
int i = 0;
for(; i < 10; i+=2)
System.out.println(i);
무한 루프를 돌리기 위해서는 아무것도 써주지 않으면 된다.
for(;;)
System.out.println("무한 루프입니다.");
● for each
for each문은 배열이나 컬렉션, 열거와 같이 ‘집합체‘의 경우 그 집합에 대해 반복하는 명령어이다.
단 여기서 변수명과 반복 객체의 자료형이 같아야 한다!
int[] number = {1, 2, 3, 4, 5};
for (int num : number) // int number라는 배열을 num에 넣어서 반복
System.out.println(num);
위처럼 int형 배열을 반복하기 때문에 변수명도 int로 선언되었다.
enum Rainbow {
RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET,
}
for (Rainbow rainbow : Rainbow.values()) // 참조형 enum을 반복하므로 자료형 enum을 사용
System.out.println(rainbow);
위처럼 enum의 경우 ‘객체명.values()’ 라는 명령어를 사용한다.
● while 문
while문은 for문과 마찬가지로 반복문이다.
하지만 while문은 단지 ‘조건’만 가지고 있고,
초기 값과 증가치를 선언할 수 없다.
while(true)
System.out.println("무한 루프입니다.");
하지만 for문처럼 코딩할 수 있다.
int i = 0; // 초기 값
while(i < 10){ // 조건
System.out.println(i);
i++; // 증가치
}
● do while 문
do while문은 while문과 같은 반복을 하는 반복문이지만
다른 점은 do 안에 있는 코드는 최소 1번 실행한다.
그 후 조건이 성립하면 실행 아니면 탈출하게 된다.
int i = 100; // 초기 값
do{ // 조건
System.out.println(i);
i++; // 증가치
}while(i < 10);
=> 100
● 이중 반복문
for문 혹은 while문을 두 번 사용해서 이중으로 반복문을 만들 수 있다.
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’ : 진행 중인 반복문을 건너뛰고(실행 해야 하는 코드 전부) 다음 반복문으로 넘어간다.
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