JAVA 3강_6_★다중 for 반복문★ (구구단, 별찍기)

열라뽕따히·2024년 2월 3일

JAVA

목록 보기
18/79

★★★★ 다중 for 반복문 ★★★★

  • 반복문 안에 또 다른 반복문을 포함하는 형태를 말함

  • 반복문이 중첩이 되어 사용되는 경우를 말함

  • 외부 반복문과 내부 반복문 간의 변수의 값 변화에 유의할 것!

  • 형식)

for (초기식1; 조건식1; 증감식1){
     반복 실행 문장;
     for(초기식2; 조건식2; 증감식2){
         반복 실행 문장;
     }
}




============================코드============================

for(int i = 1; i <= 3; i++) {     // j가 거짓일 시 i 증가식으로 가게 됨  --> 그리고 다시 j가 있는 for 문으로 감
			
	for(int j = 1; j <= 4; j++) {   // 참 일시 j 값이 증가가 됨
				
			System.out.print("[" + i + "," + j + "]");
			}
			
		System.out.println();

============================실행============================





[문제]
다중 for문을 이용하여 구구단을 만들어보자
2가지 형식으로 만들자 (세로형 / 가로형)


<세로형>
============================코드============================
for(int dan = 2; dan <= 9; dan++) {    // 고정되는 것은 바깥 for문에, 변화하는 것은 안쪽 for문에 / 구구단에서의 단
			
	System.out.println("*** " + dan + "단 ***");
			
		for(int su = 1; su <= 9; su++) {   // 구구단에서의 수
				
			System.out.println(dan + "*" + su + "=" + (dan * su));
			} // 안쪽 for문의 end
			
			System.out.println();
			
		} // 바깥쪽 for문의 end

============================실행============================

<가로형>


============================코드============================

for(int su1 = 1; su1 <=9; su1++) {
			
	for(int dan1 = 2; dan1 <=9; dan1++) {
				
		System.out.print(dan1 + "*" + su1 + "=" + (dan1*su1) + "\t");
			}
			
		    System.out.println();
		}

============================실행============================





[문제 : 별찍기 1]
아래와 같이 화면에 출력 해보자

*******
*******
*******
*******




============================코드============================

	for(int i = 1; i <= 4; i++) {     // 별찍기에서의 행
			
		for(int j = 1; j < 8; j++) {  // 별찍기에서의 열
				
				System.out.print("*");
		}
			System.out.println();         // 다음줄로 이동
	}

============================실행============================





[문제 : 별찍기 2]
아래와 같이 화면에 출력 해보자

*
**
***
****
*****




============================코드============================

for(int i = 1; i <= 5; i++) {
			
	for(int j = 1; j <= i; j++) {
				
			System.out.print("*");
	}
			System.out.println();
}

============================실행============================





[문제 : 별찍기 3]
아래와 같이 화면에 출력 해보자

*****
****
***
**
*




============================코드============================

for(int i = 5; i >= 1; i--) {
				
		for(int j = 1; j <= i; j++) {
					
			System.out.print("*");
		}
				System.out.println();
}
			

============================실행============================





**어려웠던 점

-구구단에서의 가로형으로 화면에 출력하는 것이 헷갈리고 어려웠음.. 행이 기준이 될 때와 열이 기준이 될 떄를 잘 파악하고 적절한 식을 쓰는 것이 필요함!
손에 익을 때까지 문제를 풀어보고 내 마음대로 변형해볼 수 있도록 노력해야 할 거 같다 흑흑

-대망의 별 찍기.. 안쪽 for문의 값 기준을 왜 i로 정하는지 이해가 가지 않아 어려웠다.. 안쪽 for문이 false일 때까지 계속 반복하다 바깥 for문의 값을 하나 증가한다는 걸 잊지 말자!
어떻게 차근차근 하나씩 해체해서 생각하다 보면 어느정도 알 것 같긴 하나 이것 또한 반복해서 풀어보는 게 필요할 듯 하다

0개의 댓글