JAVA/JAVA 정리

[JAVA] 반복문 (for문, while문, do-while문)

h0-0cat 2023. 5. 4. 12:09
728x90

반복문 (for문, while문, do-while문)

반족적으로 실행해야 할 경우 

for문 : 가장 큰 특징은 제어 변수를 사용한다는 점이다. 루프를 통제하는 변수를 선언하고 이 변수가 일정한 범위의 값을 가지는 동안 명령을 계속 반복한다. 그래서 통상 for문은 반복 횟수가 이미 정해져 있고 루프 중간에서 탈출하는 경우가 별로 없다. 물론 break문으로 강제로 탈출할 수도 있지만 일반적으로 반복 횟수가 정해져 있다. 그래서 for문은 1~100까지, 1번 학생~60번 학생까지의 경우처럼 미리 정해진 횟수만큼 반복할 때 가장 편리하다. 또한 문장안에 초기식, 조건식, 증감식이 포함되어 있어서 루프의 선두만 봐도 변수의 변화를 쉽게 파악하고 변경할 수 있다.

 

for (초기식;조건식;증감식) {

명령;

}

1.for문으로 1~100까지의 합

//사용법 예제 
public class H2{
	public static void main(String[] args) {
		int sum = 0;  // 합계 변수
		for(int i=1; i<=100; i++) {
			sum = sum + i;
		}
		System.out.println("1~100까지의 합 : " + sum);
	}
}

결과

1~100 합 : 5050

2.

//사용법 예제 
public class H2{
	public static void main(String[] args) {
		for(int i=1; i<=5; i++) {
			 System.out.println(i);
		}		
	}
}

결과

1
2
3
4
5

3. for문으로 구구단 출력하기 

public class H2 {
	public static void main(String[] args) {
		for (int i = 2; i <= 9; i++) {
			System.out.println("★ " + i + "단 ★");
			for (int n = 1; n <= 9; n++) {
				System.out.println(i + " x " + n + " = " + (i*n));
			}
		}
	}
}

결과

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 = 183단 ★
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 = 274단 ★
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 = 365단 ★
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 = 456단 ★
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 = 547단 ★
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 = 638단 ★
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 = 729단 ★
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문이 정해진 횟수만큼 반복한다면,  while문은 조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 또는 논리연산식이 주로 오는데, 조건식이 false가 되면 반복 행위를 멈추고 while문을 종료한다.

문법

while (조건식) {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

}

 

while 문은 우선 조건식이 참(true)인지를 판단하여, 참이면 내부의 명령문을 실행합니다.

내부의 명령문을 전부 실행하고 나면, 다시 조건식으로 돌아와 또 한 번 참인지를 판단하게 됩니다.

이렇게 조건식의 검사를 통해 반복해서 실행되는 반복문을 루프(loop)라고 합니다.

public class H2 {
	public static void main(String[] args) {
		int i = 0;
		while (i < 5) {
			System.out.println("while 문이 " + (i + 1) + "번째 반복 실행중입니다.");
			i++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨.
		}
		System.out.println("while 문이 종료된 후 변수 i의 값은 " + i + "입니다.");
	}
}

결과

while 문이 1번째 반복 실행중입니다.
while 문이 2번째 반복 실행중입니다.
while 문이 3번째 반복 실행중입니다.
while 문이 4번째 반복 실행중입니다.
while 문이 5번째 반복 실행중입니다.
while 문이 종료된 후 변수 i의 값은 5입니다.

2.

//사용법 예제 
public class H2 {
	public static void main(String[] args) {
		int i = 1;
		while (i <= 10) {
			System.out.println(i);
			i++;
		}
	}
}

결과

1
2
3
4
5
6
7
8
9
10

 

3. while문으로 1~100까지의 합

//사용법 예제 
public class H2 {
	public static void main(String[] args) {
		int sum = 0; // 합계 변수
		int i = 1;
		while (i <= 100) {
			sum += i;
			i++;
		}
		System.out.println("1~" + (i - 1) + "합 : " + sum);
	}
}

결과

1~100합 : 5050

do -while문 

do-while문은 조건식에 의해 반복 실행한다는 점에서 while문과 동일하다.

while 문은 루프에 진입하기 전에 먼저 조건식부터 검사합니다.

하지만 do / while 문은 먼저 루프를 한 번 실행한 후에 조건식을 검사합니다.

즉, do / while 문은 조건식의 결과와 상관없이 무조건 한 번은 루프를 실행합니다.

do {

    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;

} while (조건식);

 

int i = 1, j = 1;

 

while (i < 1) {

    System.out.println("while 문이 " + i + "번째 반복 실행중입니다.");

    i++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨.

}

System.out.println("while 문이 종료된 후 변수 i의 값은 " + i + "입니다.");

 

do {

    System.out.println("do / while 문이 " + i + "번째 반복 실행중입니다.");

    j++; // 이 부분을 삭제하면 무한 루프에 빠지게 됨.

} while (j < 1);

System.out.println("do / while 문이 종료된 후 변수 j의 값은 " + j + "입니다.");

결과

while 문이 종료된 후 변수 i의 값은 1입니다.
do / while 문이 1번째 반복 실행중입니다.
do / while 문이 종료된 후 변수 j의 값은 2입니다.

 


break 문

break 문은 루프 내에서 사용하여 해당 반복문을 완전히 종료시킨 뒤, 반복문 바로 다음에 위치한 명령문을 실행합니다.   즉 루프 내에서 조건식의 판단 결과와 상관없이 반복문을 완전히 빠져나가고 싶을 때 사용합니다.

//사용법 예제 
public class H2 {
	public static void main(String[] args) {
		int num = 1, sum = 0;
		while (true) { // 무한 루프
			sum += num;
			if (num == 100) {
				break;
			}
			num++;
		}
		System.out.println(sum);
	}
}

결과

5050

 

continue문

루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 해줍니다. 보통 반복문 내에서 특정 조건에 대한 예외 처리를 하고자 할 때 자주 사용됩니다.

//사용법 예제 
public class H2 {
	public static void main(String[] args) {
		for (int i = 1; i <= 15; i++) {
			if (i % 5 == 0 || i % 7 == 0) {
				System.out.println(i);
			} else {
				continue;
			}
		}
	}
}

결과

5
7
10
14
15

 

 

 

 

728x90

'JAVA > JAVA 정리' 카테고리의 다른 글

[JAVA] 참조 타입  (0) 2023.05.05
[JAVA] 연산자와 연산식  (0) 2023.05.04
[JAVA] 조건문 ( if문, switch문 )  (0) 2023.05.04
[JAVA] 변수와 타입  (0) 2023.05.03
[JAVA] JAVA 시작하기  (0) 2023.05.03