22.04.21

오혜원·2022년 4월 21일
0

java

목록 보기
6/18

반복문 : Loop Statement

while
while (반복 조건) {수행 코드}
: 반복 조건이 참(true)인 동안, {수행 코드}를 계속 실행
: 반복 조건이 거짓(false)인 경우, {수행 코드}를 실행하지 않음
: 중첩이 가능, 초기식, 증감식, 조건비교식의 위치를 기억(★)

package ch03;

public class Ch03Ex39 {
	public static void main(String[] args) {
		int dan = 2;		// 초기식
		int cnt = 1;
		
		// 구구단
		while (dan < 10) {
			System.out.println("---- " + dan + "단 -----");
			while (cnt < 10) {
				System.out.print(dan + " x " + cnt + " = " + (dan * cnt) + "\t");
				
				if (cnt % 3 == 0)
					System.out.println();
				
				cnt++;
			}
			System.out.println();
			cnt = 1;
			dan++;
		}
	}
}

출력 결과
---- 2단 -----
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
---- 3단 -----
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
3 x 4 = 12 3 x 5 = 15 3 x 6 = 18
3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
---- 4단 -----
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12
4 x 4 = 16 4 x 5 = 20 4 x 6 = 24
4 x 7 = 28 4 x 8 = 32 4 x 9 = 36
---- 5단 -----
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15
5 x 4 = 20 5 x 5 = 25 5 x 6 = 30
5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
---- 6단 -----
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18
6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
6 x 7 = 42 6 x 8 = 48 6 x 9 = 54
---- 7단 -----
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21
7 x 4 = 28 7 x 5 = 35 7 x 6 = 42
7 x 7 = 49 7 x 8 = 56 7 x 9 = 63
---- 8단 -----
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24
8 x 4 = 32 8 x 5 = 40 8 x 6 = 48
8 x 7 = 56 8 x 8 = 64 8 x 9 = 72
---- 9단 -----
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27
9 x 4 = 36 9 x 5 = 45 9 x 6 = 54
9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

for
for (초기식; 조건식; 증감식) {수행 코드}
: 초기식에 기반하여 조건식이 참(true)인 경우, {수행 코드}를 실행 후 증감식을 수행

package ch03;

public class Ch03Ex42 {
	public static void main(String[] args) {
		for (int dan = 1; dan <= 9; dan++) {
			System.out.println("----- " + dan + "단 -----");
			for (int num = 1; num <= 9; num++) {
				System.out.print(dan + " x " + num + " = " + (dan * num) + "\t");
				if (num % 3 == 0)
					System.out.println();
			}
		}
	}
}

출력 결과
----- 1단 -----
1 x 1 = 1 1 x 2 = 2 1 x 3 = 3
1 x 4 = 4 1 x 5 = 5 1 x 6 = 6
1 x 7 = 7 1 x 8 = 8 1 x 9 = 9
----- 2단 -----
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
----- 3단 -----
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
3 x 4 = 12 3 x 5 = 15 3 x 6 = 18
3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
----- 4단 -----
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12
4 x 4 = 16 4 x 5 = 20 4 x 6 = 24
4 x 7 = 28 4 x 8 = 32 4 x 9 = 36
----- 5단 -----
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15
5 x 4 = 20 5 x 5 = 25 5 x 6 = 30
5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
----- 6단 -----
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18
6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
6 x 7 = 42 6 x 8 = 48 6 x 9 = 54
----- 7단 -----
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21
7 x 4 = 28 7 x 5 = 35 7 x 6 = 42
7 x 7 = 49 7 x 8 = 56 7 x 9 = 63
----- 8단 -----
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24
8 x 4 = 32 8 x 5 = 40 8 x 6 = 48
8 x 7 = 56 8 x 8 = 64 8 x 9 = 72
----- 9단 -----
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27
9 x 4 = 36 9 x 5 = 45 9 x 6 = 54
9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

while과 for의 사용법 비교
for의 경우, while보다 초기식, 조건식, 증감식이 집중되어 있다.

while과 for의 여러 사용법
for의 초기식을 생략하거나 while과 for의 조건식에 두 개 이상의 변수를 사용

package ch03;

public class Ch03Ex43 {
	public static void main(String[] args) {
		int endPoint = 1;
		System.out.println("while 사용법");
		while(endPoint <= 5) {
			System.out.println("endPoint : " + endPoint);
			endPoint++;
		}
		
		System.out.println("for 사용법");
		for (int loopCnt = 1; loopCnt <= 5; loopCnt++) {
			System.out.println("loopCnt : " + loopCnt);
		}
		
		System.out.println("for 사용법 tip");
		int loopCnt = 1;
		for (; loopCnt <= 5; loopCnt++) {
			System.out.println("loopCnt : " + loopCnt);
		}
		
		System.out.println("while에서 두 개의 변수 사용");
		int ep2 = 1, ep3 = 10;
		while(ep2 < 5 && ep3 > 5) {
			System.out.println("ep2 : " + ep2 + ", ep3 : " + ep3);
			ep2++;
			ep3--;
		}
		
		System.out.println("for에서 두 개의 변수 사용");
		for(int lp2 = 1, lp3 = 10; lp2 < 5 && lp3 > 5; lp2++, lp3--) {
			System.
			out.println("lp2 : " + lp2 + ", lp3 : " + lp3);
		}
	}
}

출력 결과
while 사용법
endPoint : 1
endPoint : 2
endPoint : 3
endPoint : 4
endPoint : 5
for 사용법
loopCnt : 1
loopCnt : 2
loopCnt : 3
loopCnt : 4
loopCnt : 5
for 사용법 tip
loopCnt : 1
loopCnt : 2
loopCnt : 3
loopCnt : 4
loopCnt : 5
while에서 두 개의 변수 사용
ep2 : 1, ep3 : 10
ep2 : 2, ep3 : 9
ep2 : 3, ep3 : 8
ep2 : 4, ep3 : 7
for에서 두 개의 변수 사용
lp2 : 1, lp3 : 10
lp2 : 2, lp3 : 9
lp2 : 3, lp3 : 8
lp2 : 4, lp3 : 7

break
프로그램의 흐름을 종료
: 가장 가까운 반복문만 종료

package ch03;

public class Ch03Ex52 {
	public static void main(String[] args) {
		for (int dan = 2; dan <= 9; dan++) {
			for (int gop = 1; gop <= 9; gop++) {
				System.out.print(dan + " x " + gop + " = " + (dan * gop) + "\t");
				if (gop == 5)	// x 5 이후 출력 X
					break;
			}
			System.out.println();
		}
	}
}

출력 결과
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 5 = 20
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45

continue
프로그램의 흐름을 건너뜀
: 가장 가까운 반복문만 건너뜀

package ch03;

public class Ch03Ex53 {
	public static void main(String[] args) {
		for (int dan = 2; dan <= 9; dan++) {
			for (int gop = 1; gop <= 9; gop++) {
				if (gop == 5)	// x 5 는 출력 X
					continue;
				System.out.print(dan + " x " + gop + " = " + (dan * gop) + "\t");
			}
			System.out.println();
		}
	}
}

출력 결과
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 4 x 6 = 24 4 x 7 = 28 4 x 8 = 32 4 x 9 = 36
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 6 = 36 6 x 7 = 42 6 x 8 = 48 6 x 9 = 54
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 8 x 9 = 72
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

do ~ while
do {수행 코드} while (조건식)
: {수행 코드} 실행 후, (조건식)이 참(true)인 경우 반복 실행. (조건식)이 거짓(false)인 경우 다음 코드 실행.

TIP!
: 반복문에서는 보조 변수(i)를 쓰면 편리하다. (합계, 횟수 등에 사용)

package ch03;

public class Ch03Ex55 {
	public static void main(String[] args) {
		// 반복문으로 1에서 10까지 더하기
		int sum = 0;
		
		for (int i = 1; i <= 10; i++) {
			sum += i;
		}
		
		System.out.println("1부터 10까지의 합 : " + sum);
	}
}

출력 결과
1부터 10까지의 합 : 55


0개의 댓글