Hard Coding을 통한 모듈화 절차
- 절차 나누기 (주석 활용, 직접 적기)
- Hard Coding (노가다) : 패턴, 변수, 샘플링 가능, 절차 생략 - given
- 공통 모듈화
- 불필요한 것들은 반복문으로 압축
구구단
- 구구단을 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단까지 출력
결과

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