반복문이란?
- 특정 조건에 따라 지정된 범위의 문장들을 반복 실행하는 문
- for문(반복횟수가 정해져있을때),
- while문(반복횟수 정해짐x, 특정 조건 만족할때까지)으로 구분됨
- for문
- 가장 기본적인 반복문
- 반복 횟수가 정해져 있는 경우에 주로 사용
- 초기식, 조건식, 증감식의 위치가 정해져 있어, 초보자가 익히기 쉬움
- 초기식: 반복 횟수를 판별하기 위한 조건에 사용됨 제어변수를 선언하거나 초기화하는 문장
- 조건식: 반복 여부를 결정하기 위한 조건식 => if문과 마찬가지로 true일 때 블록 내의 문장을 실행하고 false일 때 for문을 종료하고 빠져나감
- 증감식: 반복을 위한 조건식에 맞춰 초기식에서 초기화한 제어변수를 증감시키는 문장
<기본문법>
for(초기식; 조건식; 증감식) {
// 조건식 결과가 true일 때 반복 실행 할 문장들..
}
// "x : Hello, World!" 문자열을 10번 반복 출력 (x는 현재 반복 횟수)
System.out.println("1 : Hello, World!");
System.out.println("2 : Hello, World!");
System.out.println("3 : Hello, World!");
System.out.println("4 : Hello, World!");
System.out.println("5 : Hello, World!");
System.out.println("6 : Hello, World!");
System.out.println("7 : Hello, World!");
System.out.println("8 : Hello, World!");
System.out.println("9 : Hello, World!");
System.out.println("10 : Hello, World!");
위의 10개의 출력을 반복문(for)을 사용하여 압축 => 10번 반복을 위해서 제어변수 i가 1부터 10이하일 동안 1씩 증가하면서 출력문을 반복 실행 =>
초기식 : 제어변수 i를 선언하고 초기값인 1로 초기화 (int i=1) 조건식 : 제어변수 i가 10 이하일 때 true 조건 (i<=10 or i<11) 증감식 : 제어변수 i를 1씩 증가 (i++ or ++1 -> 선행 or 후행)
위의 for문에 대한 디버깅(Debugging)
---------------------------------------------------------------------------------------
초기식(i) 조건식(i<=1) 실행결과(i + "Hello, World!") 증감식(i++)
---------------------------------------------------------------------------------------
1 true 1 : Hello, World! 1 -> 2
2 true 2 : Hello, World! 2 -> 3
3 true 3 : Hello, World! 3 -> 4
4 true 4 : Hello, World! 4 -> 5
5 true 5 : Hello, World! 5 -> 6
6 true 6 : Hello, World! 6 -> 7
7 true 7 : Hello, World! 7 -> 8
8 true 8 : Hello, World! 8 -> 9
9 true 9 : Hello, World! 9 -> 10
10 true 10 : Hello, World! 10 -> 11
11 false for문을 빠져나감!!
for(int i=1; i<=10; i++) {
// 조건식의 결과가 true일 때 실행 할 문장
System.out.println(i + "Hello, World!");
}
System.out.println("for문 종료 후 i 값= " + i);
오류발생! => i cannot be resolved to a variable => 제어변수 i는 for문에서 선언된 변수이므로 for문의 블록{ }이 끝나면 사용 불가능한 변수(존재하지 않음!) => 따라서, 제어변수 i를 for문 종료 후에도 사용하려면 최소한 for문 보다 위쪽(앞쪽)에서 선언해야함!
- 제어변수가 i가 1~10까지 1씩 증가하면서 i값 출력
for(i=1; i<=10; i++) { System.out.print(i + " "); }
- => 출력 예시 : 1 2 3 4 5 6 7 8 9 10
- 제어변수 i가 1~10까지 2씩 증가하면서 i값 출력(홀수 출력) => 출력 예시 : 1 3 5 7 9 ⇒ hint. 복합대입 연산자
for(i=1; i<=10; i+=2) {
System.out.print(i + " ");
}
- 제어변수 i가 1~10까지 2씩 증가하면서 i값 출력(짝수 출력) => 출력 예시 : 2 4 6 8 10
for(i=2; i<=10; i+=2) {
System.out.print(i + " ");
}
- 제어변수 i가 1~10까지 1씩 감소하면서 i값 출력(역순 출력) => 출력 예시 : 10 9 8 7 6 5 4 3 2 1
for(i=10; i>=1; i--) {
System.out.print(i + " ");
}
- for문을 사용하여 특정 단에 해당하는 구구단 출력 ⇒ 2단 출력
- 단(dan)과 곱해지는 수(i)를 저장할 변수를 선언하고 값을 저장하면 단이 바뀌더라도 대응 가능!
int dan=2, i=1;
// System.out.println("<" + dan + "단 출력>");
System.out.printf(" <%d단 출력>", dan);
for(i=1; i<=9; i++) {
System.out.println(dan + "*" + i + "=" + dan * i);
}
- 정수 1~ 100까지의 합을 누적변수 total에 누적 후 출력
// 정수 1~ 100까지의 합을 누적변수 total에 누적 후 출력
// 누적변수 선언 및 초기화
int total = 0;
//for문
for(int i=1; i<=100; i++) {
total += i;
}
//누적변수 출력
System.out.println("1~100까지 정수의 합 : " + total);
1~100까지 정수의 합 : 5050
- 1~10까지 1씩 증가하면서, 정수 중 짝수의 합만 계산
// 1~10까지 1씩 증가하면서, 정수 중 짝수의 합만 계산
// 누적변수 선언 및 초기화
total = 0;
for(int i=1; i<=10; i++) {
//짝수일 경우에만 누적변수에 현재 값(i)을 누적
if(i%2==0) { //짝수 판별
//짝수일때 누적 수행
total += i;
System.out.println("i = " + i + ", total = " + total);
} else { //홀수 일 때
System.out.println(i + ": 홀수이므로 누적x");
}
}
//1~10까지 정수 중 짝수의 합 출력
System.out.println("1~10까지 정수 중 짝수의 합 : " + total);
1~10까지 정수 중 짝수의 합 : 30
- 1~10까지 정수 중 홀수 합 계산 후 출력
total = 0; // 누적변수 선언 및 초기화
for(int i=1; i<=10; i++) { // 1~10까지 1씩 증가하면서 반복
//홀수일 경우에만 누적변수에 현재 값 i를 누적
if(i%2==1) { // 홀수 판별
total +=i;// 홀수일 때 누적 수행
System.out.println("i =" + i +", total = " + total);
} else { // 짝수일 때
System.out.println(i + ": 짝수이므로 누적x");
}
}
System.out.println("1~10까지 정수 중 홀수의 합 : " + total);
1~10까지 정수 중 홀수의 합 : 25
1~100까지 정수의 합 : 5050
===============================
1: 홀수이므로 누적x
i = 2, total = 2
3: 홀수이므로 누적x
i = 4, total = 6
5: 홀수이므로 누적x
i = 6, total = 12
7: 홀수이므로 누적x
i = 8, total = 20
9: 홀수이므로 누적x
i = 10, total = 30
1~10까지 정수 중 짝수의 합 : 30
===============================
i =1, total = 1
2: 짝수이므로 누적x
i =3, total = 4
4: 짝수이므로 누적x
i =5, total = 9
6: 짝수이므로 누적x
i =7, total = 16
8: 짝수이므로 누적x
i =9, total = 25
10: 짝수이므로 누적x
1~10까지 정수 중 홀수의 합 : 25
'JAVA' 카테고리의 다른 글
[JAVA] while문 (0) | 2023.09.11 |
---|---|
[JAVA] 중첩 for문 (1) | 2023.09.11 |
[JAVA] switch-case문 (0) | 2023.09.08 |
[JAVA] 중첩 if문 (0) | 2023.09.08 |
[JAVA] 조건문(if, if-else, 다중if -else if문) (0) | 2023.09.08 |