반복문은 어떤 작업을 반복적으로 실행하고 싶을 때 사용한다.
반복문의 종류에는 for문, while문, do-while문이 있다.
for문, while문, do-while문 차이점
▪︎ for문 : 반복 횟수를 알고 있을 때 사용한다. (1번 반복, 2번 반복)
▪︎ while문 : 조건에 따라 반복할 때 사용한다. (true일 때 반복)
▪︎ do-while문 : while문과 유사하지만, 조건을 나중에 검사한다.
몇 번 반복할지를 정확히 정할 수 있을 때 사용한다.
반복문 안에 선언된 변수는 반복문안에서만 사용 가능하다.
반복문 밖에서 변수를 사용하려면 반복문 밖에 변수를 미리 선언하면 된다.
int i = 0; // 반복문의 횟수를 지정하는 변수
for (초기화식; 조건식; 증감식) {
// 조건식이 true일 경우 반복
// 실행문;
}
▪︎ 초기화식 : 반복이 어디서부터 진행될건지를 작성한다.
▪︎ 조건식 : 언제까지 반복 할건지를 작성한다.
▪︎ 증감식 : 한 번씩 반복할 때마다 얼마씩 증가 또는 감소할건지를 작성한다.
// 1~100까지의 합계
int i = 0;
int sum = 0;
for (i = 1; i <= 100; i++) {
sum = sum + i; // 100번 반복
}
System.out.println("1부터 " + (i-1) + "까지의 합계 : " + sum);
1부터 100까지의 합계 : 5050
i가 101이 되면 조건식이 false가 되므로 반복문이 종료된다.
이때 반복문을 빠져나온 i의 값은 101이므로 출력 시 -1를 해주어야 한다.
for문 내부에 for문이 들어있는걸 중첩이라 표현한다.
바깥 for문이 한 번 반복할 때마다, 내부 for문이 조건에 따라 반복을 수행한다.
내부 for문의 조건이 false가 되면,
바깥 for문의 증감식으로 돌아가 바깥 for문을 반복한다.
// 구구단
for (int i = 2; i <= 9; i++) {
System.out.println(i + "단");
for (int j = 1; j <= 9; j++) {
System.out.println(i + "x" + j + " = " + (i*j));
}
}
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
...
9 x 9 = 81
바깥 for문이 2일 때 안쪽 for문은 1~9번 실행된다.
조건식에 따라 반복문을 수행한다.
true면 계속해서 반복하고, false면 반복이 종료된다.
조건식에는 주로 비교 연산식, 논리 연산식을 사용한다.
while (조건식) {
// 조건식이 true일 경우 반복
// 실행문;
}
// 1~100까지의 합계
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
for문에는 증감식이 있었지만, while문에는 조건식만 작성한다.
i의 값이 100이 될때까지 반복해야 하므로 i의 값을 증감 연산자로 증가시킨다.
while문과 유사하지만, 실행문을 우선 실행하고 조건식에 따라 반복문을 수행한다.
무조건 한 번은 실행되고, 조건식이 true면 반복문을 실행, false면 반복문을 종료한다.
do {
// 실행문;
} while (조건식);
반복문과 switch문을 종료할 때 사용한다.
주로 if 문과 함께 사용하여, 조건에 해당될 때 반복문을 종료한다.
for (초기화식; 조건식; 증감식) {
if (조건식) {
break;
}
}
while (조건식) {
if (조건식) {
break;
}
}
반복문이 중첩되어 있을 경우
내부의 for문이 종료되면 바깥 for문이 실행된다.
바깥 for문에 이름을 붙이면 (Label) 바깥 반복문을 종료할 수 있다.
Label: for () {
for () {
break Label; // 이름은 개발자가 지정할 수 있다.
}
}
// 알바펫 g가 되면 반복문을 종료
Outter:
for(char upper='A'; upper<='Z'; upper++){
for(char lower='a'; lower<='z'; lower++){
System.out.println(upper + "-" + lower);
if(lower == 'g'){
break Outter; // 바깥 for문 종료
}
}
}
for 문의 증감식이나 while, do-while 문의 조건식으로 이동된다.
반복문에서만 사용할 수 있다.
주로 if 문과 함께 사용하여, 조건에 해당될 때 증감식 또는 조건식으로 이동된다.
continue 밑에 작성한 코드는 실행되지 않는다.
for(int i=1; i<=10; i++){
if(i%2 == 0){ // 짝수인지 검사
continue; // 출력을 하지 않고 증감식으로 이동
}
System.out.println(i);
}
// 홀수의 값만 출력된다.
1
3
5
7
9
혼공자 강의를 기반으로 작성하였습니다. 🙏
19강