1. for
for문의 기본 구조
for(초기식; 조건식; 증감식;){
반복할 문장1;
반복할 문장2;
}
for문 기본 예제
import java.util.Scanner;
public class Ex06_for { // 반복문 for
/*
for(초기식; 조건식; 증감식;){
반복할 문장1;
반복할 문장2;
}
*/
public static void main(String[] args) {
// Ex01 : for문 기본
System.out.println("=================Ex01=================");
int i;
for(i=10; i>1; i--) {
System.out.println("JAVA" + i);
}
System.out.println("for문 밖 i: " + i);
// Ex02 : 1 부터 10까지 더하기
System.out.println("=================Ex02=================");
int j;
int sum = 0;
for (j=1; j<=10; j++) {
sum = sum + j;
System.out.println("sum :" +sum );
}
// Ex03 : 반복값이 10이 되기전까지 더하기
System.out.println("=================Ex03=================");
int k;
int sum2 = 0;
for (k=1; k <= 10; k=k+2) {
sum2 = sum2 + k;
System.out.println("sum2 :" + sum2 +" k값: "+ k);
// Ex04 : 1~100사이의 수 중에서 5의 배수만 풀력하기
System.out.println("=================Ex04=================");
int l;
for (l=1; l<=100; l++) {
if (l%5==0) {
System.out.println("5의 배수 출력 : " + l);
}
}
// Ex05 : 1~100사이의 수 중에서 5의 배수이면서 7의 배수 출력하기
System.out.println("=================Ex05=================");
int m;
for (m=1; m<=100; m++) {
if (m%5==0 && m%7==0) {
System.out.println("5와 7의 공배수 출력 : " + m);
}
}
// Ex06 : 1~100사이의 수 중에서 짝수의 합, 홀수의 합 출력하기
System.out.println("=================Ex06=================");
int n;
int even = 0, odd=0;
for (n=1; n<=100; n++) {
if(n%2==0) {
even = even + n ;
}else {
odd = odd + n;
}
}
System.out.println("짝수의 합 :" + even);
System.out.println("홀수의 합 :" + odd);
}
// Ex07 : 입력한 숫자의 단 만들기
System.out.println("=================Ex07=================");
Scanner input = new Scanner(System.in);
System.out.print("단 입력 : ");
int dan = input.nextInt();
int o, sum5 = 0;
for (o=1; o<10; o++) {
sum5 = dan * o;
System.out.println(dan + "*" + o + "=" + sum5);
}
}
}
=================Ex01=================
JAVA10
JAVA9
JAVA8
JAVA7
JAVA6
JAVA5
JAVA4
JAVA3
JAVA2
for문 밖 i: 1
=================Ex02=================
sum :1
sum :3
sum :6
sum :10
sum :15
sum :21
sum :28
sum :36
sum :45
sum :55
=================Ex03=================
sum2 :1 k값: 1
=================Ex04=================
5의 배수 출력 : 5
5의 배수 출력 : 10
5의 배수 출력 : 15
5의 배수 출력 : 20
5의 배수 출력 : 25
5의 배수 출력 : 30
5의 배수 출력 : 35
5의 배수 출력 : 40
5의 배수 출력 : 45
5의 배수 출력 : 50
5의 배수 출력 : 55
5의 배수 출력 : 60
5의 배수 출력 : 65
5의 배수 출력 : 70
5의 배수 출력 : 75
5의 배수 출력 : 80
5의 배수 출력 : 85
5의 배수 출력 : 90
5의 배수 출력 : 95
5의 배수 출력 : 100
=================Ex05=================
5와 7의 공배수 출력 : 35
5와 7의 공배수 출력 : 70
=================Ex06=================
짝수의 합 :2550
홀수의 합 :2500
sum2 :4 k값: 3
=================Ex04=================
5의 배수 출력 : 5
5의 배수 출력 : 10
5의 배수 출력 : 15
5의 배수 출력 : 20
5의 배수 출력 : 25
5의 배수 출력 : 30
5의 배수 출력 : 35
5의 배수 출력 : 40
5의 배수 출력 : 45
5의 배수 출력 : 50
5의 배수 출력 : 55
5의 배수 출력 : 60
5의 배수 출력 : 65
5의 배수 출력 : 70
5의 배수 출력 : 75
5의 배수 출력 : 80
5의 배수 출력 : 85
5의 배수 출력 : 90
5의 배수 출력 : 95
5의 배수 출력 : 100
=================Ex05=================
5와 7의 공배수 출력 : 35
5와 7의 공배수 출력 : 70
=================Ex06=================
짝수의 합 :2550
홀수의 합 :2500
sum2 :9 k값: 5
=================Ex04=================
5의 배수 출력 : 5
5의 배수 출력 : 10
5의 배수 출력 : 15
5의 배수 출력 : 20
5의 배수 출력 : 25
5의 배수 출력 : 30
5의 배수 출력 : 35
5의 배수 출력 : 40
5의 배수 출력 : 45
5의 배수 출력 : 50
5의 배수 출력 : 55
5의 배수 출력 : 60
5의 배수 출력 : 65
5의 배수 출력 : 70
5의 배수 출력 : 75
5의 배수 출력 : 80
5의 배수 출력 : 85
5의 배수 출력 : 90
5의 배수 출력 : 95
5의 배수 출력 : 100
=================Ex05=================
5와 7의 공배수 출력 : 35
5와 7의 공배수 출력 : 70
=================Ex06=================
짝수의 합 :2550
홀수의 합 :2500
sum2 :16 k값: 7
=================Ex04=================
5의 배수 출력 : 5
5의 배수 출력 : 10
5의 배수 출력 : 15
5의 배수 출력 : 20
5의 배수 출력 : 25
5의 배수 출력 : 30
5의 배수 출력 : 35
5의 배수 출력 : 40
5의 배수 출력 : 45
5의 배수 출력 : 50
5의 배수 출력 : 55
5의 배수 출력 : 60
5의 배수 출력 : 65
5의 배수 출력 : 70
5의 배수 출력 : 75
5의 배수 출력 : 80
5의 배수 출력 : 85
5의 배수 출력 : 90
5의 배수 출력 : 95
5의 배수 출력 : 100
=================Ex05=================
5와 7의 공배수 출력 : 35
5와 7의 공배수 출력 : 70
=================Ex06=================
짝수의 합 :2550
홀수의 합 :2500
sum2 :25 k값: 9
=================Ex04=================
5의 배수 출력 : 5
5의 배수 출력 : 10
5의 배수 출력 : 15
5의 배수 출력 : 20
5의 배수 출력 : 25
5의 배수 출력 : 30
5의 배수 출력 : 35
5의 배수 출력 : 40
5의 배수 출력 : 45
5의 배수 출력 : 50
5의 배수 출력 : 55
5의 배수 출력 : 60
5의 배수 출력 : 65
5의 배수 출력 : 70
5의 배수 출력 : 75
5의 배수 출력 : 80
5의 배수 출력 : 85
5의 배수 출력 : 90
5의 배수 출력 : 95
5의 배수 출력 : 100
=================Ex05=================
5와 7의 공배수 출력 : 35
5와 7의 공배수 출력 : 70
=================Ex06=================
짝수의 합 :2550
홀수의 합 :2500
=================Ex07=================
단 입력 : 6
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
2. 이중 for문
이중 for문의 동작 흐름
- 바깥 for → 조건 확인 후 첫 실행
- 안쪽 for → 조건이 참이면 전부 반복
- 안쪽 for문이 종료되면 다시 바깥 for 증감
- 바깥 for 조건이 거짓이 될 때까지 반복
for (외부변수) {
for (내부변수) {
// 반복 실행
}
}
정리
- 이중 for문은 "반복 속의 반복" 구조로, 바깥 루프 1회 → 안쪽 루프 전체 실행
- 반복 횟수 = 바깥 반복 수 × 안쪽 반복 수
- 구구단, 표 출력, 2차원 데이터 처리 등 반복 패턴이 있는 경우 유용
이중 for문 예시1
public class Ex07_for {
public static void main(String[] args) {
// Ex01 : 이중 for문 기본
int i,j;
for (i=1; i<3; i++) {
for (j=5; j<8; j++) {
System.out.println(i+","+j);
} // 안쪽 for
System.out.println("=================");
} // 바깥 for
System.out.println("*****************");
}
}
1,5
1,6
1,7
=================
2,5
2,6
2,7
=================
*****************
이중 for문 예시2
public class Ex09_for_문 {
public static void main(String[] args) {
// Ex01: 별 출력
for(int i=0; i<5; i++) {
for(int j=0; j<=i; j++) {
System.out.print("*");
}System.out.println();
}
}
}
public class Ex09_for_문 {
public static void main(String[] args) {
// Ex01: 별 출력
for(int i=1; i<=6; i++) {
for(int j=6; j>i; j--) {
System.out.print("*");
} System.out.println(" ");
}
}
i=0; 5번 j=54321 i=0
i=1; 5번 j=4321 i=1
i=2; 5번 j=321 i=2
i=3; 5번 j=21 i=3
i=4; 5번 j=1 i=4
*****
****
***
**
*
public class Ex08_for {
public static void main(String[] args) {
// Ex01 : 전체 구구단 만들기(세로)
System.out.println("==========Ex01==========");
int i, j;
// 바깥 for문: 단(1~9)
for (i=1; i<=9; i++) {
System.out.println(i + "단");
// 안쪽 for문: 곱하는 수(1~9)
for(j=1; j<=9; j++) {
System.out.println(i + "*"+ j +"="+ i*j);
}
System.out.println("==============="); // 단이 끝날 때마다 출력
}
System.out.println("끝"); // 모든 단이 끝나면 출력
// Ex02 : 가로 구구단
System.out.println("==========Ex02==========");
for (int m = 1; m <= 9; m++) {
// 단(2~9)이 안쪽 for문
for (int n = 2; n <= 9; n++) {
// \t로 간격 맞춤
System.out.print(n + " * " + m + " = " + (n * m) + "\t");
}
// 안쪽 for문이 끝나면 줄바꿈
System.out.println();
}
}
}
==========Ex01==========
1단
1*1=1
1*2=2
1*3=3
1*4=4
1*5=5
1*6=6
1*7=7
1*8=8
1*9=9
===============
2단
2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
===============
3단
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
===============
4단
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36
===============
5단
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
===============
6단
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
===============
7단
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
===============
8단
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
8*9=72
===============
9단
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81
===============
끝
==========Ex02==========
2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 5 * 1 = 5 6 * 1 = 6 7 * 1 = 7 8 * 1 = 8 9 * 1 = 9
2 * 2 = 4 3 * 2 = 6 4 * 2 = 8 5 * 2 = 10 6 * 2 = 12 7 * 2 = 14 8 * 2 = 16 9 * 2 = 18
2 * 3 = 6 3 * 3 = 9 4 * 3 = 12 5 * 3 = 15 6 * 3 = 18 7 * 3 = 21 8 * 3 = 24 9 * 3 = 27
2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 5 * 4 = 20 6 * 4 = 24 7 * 4 = 28 8 * 4 = 32 9 * 4 = 36
2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 6 * 5 = 30 7 * 5 = 35 8 * 5 = 40 9 * 5 = 45
2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 7 * 6 = 42 8 * 6 = 48 9 * 6 = 54
2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 8 * 7 = 56 9 * 7 = 63
2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 9 * 8 = 72
2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81