바트심슨으로 하루만 살고 싶다

6. Java - 반복문( for 문 , while 문 , 중첩 반복) 본문

Java/Java

6. Java - 반복문( for 문 , while 문 , 중첩 반복)

바트심슨바게트 2022. 11. 24. 19:46

for문

for문의 구성

for( 초기문 ; 조건식 ; 반복 후 작업){
	....	작업문		....
}
//예시
for ( int i = 0; i < 10 ; i++){
	System.out.println(i)
}

for문의 특징

- 초기문

 >> for문 실행 후 오직 한 번만 실행되는 초기화 작업 

 >> 콤마 ( ; ) 으로 구분하여 여러 문장 나열 가능

 >> 초기화를 할 일이 없으면 생략 가능

 

- 조건식

>> 논리형 변수나 논리 연산만 가능

>> 반복 조건이 true이면 계속 반복,  false이면 반복 종료

>> 조건식이 true 상수인 경우, 무한 반복 == 비어 있어도 true로 간주

 

- 반복 후 작업

>> 반복 작업 문장들의 실행 후 처리 작업

>> 콤마 ( ; )로 구분하여 여러 문장 나열 가능

 

예시

for (int i = 1; i <= 100; i++) {
	System.out.println(i);
}
//1 ~ 100 까지 숫자 나열
		
        
for (int i = 10; i >= 0; i--) {
	System.out.println(i);
}
//10 ~ 0 까지의 숫자를 역순으로 나열
		
        
for (int i = 1; i <= 100; i++) { // 전제조건
	if (i % 5 == 0 && i % 6 == 0) {
		System.out.println(i);
	}
}
// 1 부터 100까지의 수 중에서 5와 6의 공배수들 출력 
//		30
//		60
//		90
        
        
int sum = 0;
for (int i = 0; i <= 100; i++) { // for ( 초기식 ; 조건식 ; 증감식;){실행문장}
	if (i % 2 == 0)	//짝수의 합
		sum += i;
	}
	System.out.println(sum);
// 2550 출력

while 문

wihle문의 구성

while ( 조건식 ) {
	...	작업문	...
}

while문의 특징

- 조건식

>> 반복 조건이 true 이면 반복, false 이면 반복 종료

>> 반복 조건이 없으면 컴파일 오류!

>> 처음부터 반복 조건을 통과한 후 작업문 수행

 

- while문의 구조

- 예시

>> 위의 while 문은 i 값을 후위 연산자 i++ 반복해서 최종적으로 i가 10이 되는 순간 반복 종료.

>> 출력은 0 ~ 9까지 일일이 나열해서 출력.

 

>> 1부터 100까지 숫자들의 합 출력하기

int sum = 0;
int i = 1;

while (i <= 100) {
	sum += i;
	i++;
}
System.out.println(sum);
5050

중첩 반복

>> 반복문이 다른 반복문을 내포하는 구조

>> 이론적으로는 몇 번이고 중첩 반복이 가능하지만 추천하지 않는 방법

( why? - 프로그램 구조를 복잡하게 하며, 연산 횟수가 증가해 속도가 느려짐.)

>> 2중 또는 3중 반복이 적당!

 

예시

>> 이중 for문을 돌리게 된다면 다음과 같은 행렬이 나타나는 것을 알 수 있다.

>> 이를 참고하여 다른 예제에 적용해보자.

for (int i = 1; i <= 3; i++) {
	for (int j = 1; j <= 5; j++) {
		System.out.print("( " + i + " , " + j + " )" + "\t");
	}
	System.out.println();
}
출력
( 1 , 1 )	( 1 , 2 )	( 1 , 3 )	( 1 , 4 )	( 1 , 5 )	
( 2 , 1 )	( 2 , 2 )	( 2 , 3 )	( 2 , 4 )	( 2 , 5 )	
( 3 , 1 )	( 3 , 2 )	( 3 , 3 )	( 3 , 4 )	( 3 , 5 )

>> 구구단 만들기

System.out.println("구구단 출력 프로그램");
for (int i = 1; i <= 9; i++) {
	System.out.println("================================");
	System.out.println(i + " 단");
	for (int j = 1; j <= 9; j++) {
		System.out.println(i + " x " + j + " = " + (i * j));
	}
}
구구단 출력 프로그램
================================
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
.
.
.
================================
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

 

Comments