[JAVA] 14. 이중 for문으로 구구단 만들기

문정준's avatar
Feb 05, 2025
[JAVA] 14. 이중 for문으로 구구단 만들기
💡
Hard Coding을 통한 모듈화 절차
  1. 절차 나누기 (주석 활용, 직접 적기)
  1. Hard Coding (노가다) : 패턴, 변수, 샘플링 가능, 절차 생략 - given
  1. 공통 모듈화
  1. 불필요한 것들은 반복문으로 압축
 

구구단

  • 구구단을 2단부터 9단까지 출력하시오.
 

문제 분석

  • 구구단은 특정 수를 1부터 9까지 곱해야 함
    • 반복문 사용 : for
  • 2단부터 9단까지 한 번에 표현해야 함
    • 반복문을 반복 : 이중 반복문
 

Step 1. Hard Coding

package ex03; public class Gugudan01 { public static void main(String[] args) { // 1. 2단 System.out.println("2*1=2"); System.out.println("2*2=4"); System.out.println("2*3=6"); System.out.println("2*4=8"); System.out.println("2*5=10"); System.out.println("2*6=12"); System.out.println("2*7=14"); System.out.println("2*8=16"); System.out.println("2*9=18"); System.out.println(); // 2. 3단 System.out.println("3*1=3"); System.out.println("3*2=6"); System.out.println("3*3=9"); System.out.println("3*4=12"); System.out.println("3*5=15"); System.out.println("3*6=18"); System.out.println("3*7=21"); System.out.println("3*8=24"); System.out.println("3*9=27"); System.out.println(); // 3. 4단 System.out.println("4*1=4"); System.out.println("4*2=8"); System.out.println("4*3=12"); System.out.println("4*4=16"); System.out.println("4*5=20"); System.out.println("4*6=24"); System.out.println("4*7=28"); System.out.println("4*8=32"); System.out.println("4*9=36"); System.out.println(); // 5단, 6단, 7단, ..., 9단 } }
  • Hard Coding을 통한 반복되는 구간, 변수 찾기

Step 2. Moduling

package ex03; public class Gugudan01 { public static void main(String[] args) { int a = 1; // 1. 2단 a++; System.out.println(a + "*" + 1 + "=" + (a * 1)); System.out.println(a + "*" + 2 + "=" + (a * 2)); System.out.println(a + "*" + 3 + "=" + (a * 3)); System.out.println(a + "*" + 4 + "=" + (a * 4)); System.out.println(a + "*" + 5 + "=" + (a * 5)); System.out.println(a + "*" + 6 + "=" + (a * 6)); System.out.println(a + "*" + 7 + "=" + (a * 7)); System.out.println(a + "*" + 8 + "=" + (a * 8)); System.out.println(a + "*" + 9 + "=" + (a * 9)); System.out.println(); // 2. 3단 a++; System.out.println(a + "*" + 1 + "=" + (a * 1)); System.out.println(a + "*" + 2 + "=" + (a * 2)); System.out.println(a + "*" + 3 + "=" + (a * 3)); System.out.println(a + "*" + 4 + "=" + (a * 4)); System.out.println(a + "*" + 5 + "=" + (a * 5)); System.out.println(a + "*" + 6 + "=" + (a * 6)); System.out.println(a + "*" + 7 + "=" + (a * 7)); System.out.println(a + "*" + 8 + "=" + (a * 8)); System.out.println(a + "*" + 9 + "=" + (a * 9)); System.out.println(); // 3. 4단 a++; System.out.println(a + "*" + 1 + "=" + (a * 1)); System.out.println(a + "*" + 2 + "=" + (a * 2)); System.out.println(a + "*" + 3 + "=" + (a * 3)); System.out.println(a + "*" + 4 + "=" + (a * 4)); System.out.println(a + "*" + 5 + "=" + (a * 5)); System.out.println(a + "*" + 6 + "=" + (a * 6)); System.out.println(a + "*" + 7 + "=" + (a * 7)); System.out.println(a + "*" + 8 + "=" + (a * 8)); System.out.println(a + "*" + 9 + "=" + (a * 9)); System.out.println(); // 5단, 6단, 7단, ..., 9단 } }
  • 공통되는 부분을 변수 추가를 통한 모듈화

Step 3. 반복 (9바퀴)

package ex03; public class Gugudan01 { public static void main(String[] args) { int a = 1; for (int i = 0; i < 8; i++) { a++; System.out.println(a + "*" + 1 + "=" + (a * 1)); System.out.println(a + "*" + 2 + "=" + (a * 2)); System.out.println(a + "*" + 3 + "=" + (a * 3)); System.out.println(a + "*" + 4 + "=" + (a * 4)); System.out.println(a + "*" + 5 + "=" + (a * 5)); System.out.println(a + "*" + 6 + "=" + (a * 6)); System.out.println(a + "*" + 7 + "=" + (a * 7)); System.out.println(a + "*" + 8 + "=" + (a * 8)); System.out.println(a + "*" + 9 + "=" + (a * 9)); System.out.println(); } } }
  • 모듈화를 통해 압축시킨 부분을 반복문을 통해 추가 압축 및 반복

최종 코드 작성

package ex03; public class Gugudan01 { public static void main(String[] args) { for (int a = 2; a < 10; a++) { for (int b = 1; b < 10; b++) { System.out.println(a + " * " + b + " = " + (a * b)); } System.out.println(); } } }
  • for문을 사용하여 1부터 9까지 곱하여 출력
    • 이중 반복문을 활용하여 2단부터 9단까지 출력

결과

notion image
 
💡
문제 요약
  1. Hard Coding, Moduling, 반복문을 통한 절차 세우기 및 구조 파악 습관 들이기
  1. 이중 반복문을 바로 사용하지 말고, 불필요한 반복 구간만 단축할 것
Share article

sxias