1. 반복문이란? - for, while, do-while
'반복문'은 주어진 조건을 만족하는 동안 주어진 문장들을 반복적으로 수행되도록 할 때 사용된다. 반복문의 종류로는 for문과 while문, while문의 변형인 do-while문이 있다.
2. for문
for문은 '초기화', '조건식', '증감식', '블럭{}', 모두 4 부분으로 이루어져 있으며, 조건식이 참인 동안 블럭{} 내의 문장들을 반복하다 거짓이 되면 반복문을 벗어난다. for문은 반복 횟수를 알고 있을 때 적합하다.
for (초기화 ; 조건식 ; 증감식) {
// 조건식이 참일 때 수행될 문장들을 적는다.
}
for(int i = 0 ; i < 3 ; i++) {
System.out.println("안녕히가세요"); // '안녕히가세요' 3번 출력
}
// ==================================================================
for(int i = 10 ; 0 < i ; i -= 1) {
System.out.println(i);
}
// ==================================================================
for(int i = 0 ; i <= 100 ; i += 5) {
System.out.println(i);
}
// ==================================================================
for(int i = 0 ; i <= 20 ; i++) {
System.out.println(i*5);
}
- 예제 FlowEx12.java
public class FlowEx12 {
public static void main(String[] args) {
for(int i = 1 ; i <= 5 ; i++)
System.out.println(i); // i의 값을 출력한다.
for(int i = 1 ; i <= 5 ; i++)
System.out.print(i); // print()를 쓰면 가로로 출력된다.
System.out.println();
}
}
- 예제 FlowEx13.java
public class FlowEx13 {
public static void main(String[] args) {
int sum = 0; // 합계를 저장하기 위한 변수
for(int i = 1 ; i <= 10 ; i++) {
sum += i ;
System.out.printf("1부터 %2d 까지의 합: %2d%n", i, sum);
}
}
}
- 예제 FlowEx14.java
public class FlowEx14 {
public static void main(String[] args) {
for(int i = 1, j = 10 ; i <= 10 ; i++, j--)
System.out.printf("%d \t %d%n", i, j);
for(int i = 1 ; i <= 10 ; i++)
System.out.printf("%d \t %d%n", i, 11-i);
}
}
- 예제 FlowEx15.java ★
public class FlowEx15 {
public static void main(String[] args) {
System.out.println("i \t 2*i \t 2*i-1 \t i*i \t 11-i \t i%3 \t i/3");
System.out.println("------------------------------------------------");
for(int i = 1 ; i <= 10 ; i++)
System.out.printf("%d \t %d \t %d \t %d \t %d \t %d \t %d%n",
i, 2*i, 2*i-1, i*i, 11-i, i%3, i/3);
}
}
3. 중첩 for문
if문 안에 또 다른 if문을 넣을 수 있는 것처럼, for문 안에 또 다른 for문을 포함시키는 것도 가능하다.
- 예제 FlowEx16.java [별 찍기]
public class FlowEx16 {
public static void main(String[] args) {
for(int i = 0 ; i < 5 ; i++) {
for(int j = 0 ; j < 5 ; j++) {
System.out.printf("[%d,%d]", i, j);
}
System.out.println();
}
}
}
- 예제 FlowEx18.java [구구단]
public class FlowEx18 {
public static void main(String[] args) {
for(int i = 2 ; i <= 3 ; i++) {
for(int j = 1 ; j <= 3 ; j++) {
System.out.printf("%d x %d = %d%n", i, j, i * j);
}
}
참고문헌 : 남궁성(2016), Java의 정석, 도우출판