-
[JAVA/자바] 구구단 예제Language/Java 2018. 3. 2. 12:36반응형
위의 그림과 같은 느낌의 프로그램을 개발하고 싶다.
한번 만들어 보자.
123456789101112131415161718192021222324class 구구단{ // 이렇게 만들라고 알려준 반복문이 아닐텐데...public static void main(String[] args){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("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");}}cs 설마 이런식으로 만들지는 않겠지??
사실 구현하기만 된다는 조건이라면 정답이라는것이 없다.
아니 조건이 다르다고 해도 프로그래밍에 정답은 없다가 맞는 말일 것이다.
우리는 앞서 이론으로 반복문을 배웠고 , 예제로는 피라미드 만들기 예제 까지 해 보았다.
반복문을 이용하지 않고 굳이 이렇게 귀찮게 작업할 필요가 없다.
반복문을 이용한다면 구구단 표를 만들기 까지는 그리 어렵지 않다.
1. 우선 한번 만들어 보자!!
12345678910111213141516class MT{ // Multiplication Table ( = 구구단 )void m(){for(int a = 1; a <= 9 ; a++){for(int b = 1 ; b <= 9 ; b++){System.out.println(a + " * " + b + " = " + a*b);}System.out.println("");}}public static void main(String[] args){MT mt = new MT();mt.m();}}cs 구구단표를 확인하기에는 조금 불편한 감이 없지 않아 있다.
편의성을 위해 맨위의 그림처럼 출력 가능하게 한번 응용해보자.
조금만 생각한다면, 금방 할수 있을 것이다.
2. 응용해보자.
12345678910111213141516class MT{ // Multiplication Table ( = 구구단 )void m(){for(int a = 1; a <= 9 ; a++){for(int b = 1 ; b <= 9 ; b++){System.out.print(b + " * " + a + " = " + a*b + "\t");}System.out.println("");}}public static void main(String[] args){MT mt = new MT();mt.m();}}cs a 와 b 의 자리를 바꾸고 println 을 print 로 바꾼다면 옆으로 출력이 된다.
좀더 괜찮게 만들어 진것 같다.
3. 구구단 표만 본다고 해서 구구단이 외워질까?
뭐든지 게임을 하면서 배우는건 재미있다고 느껴지고
재미가 있다면 학습효과는 향상된다.
흥미를 유발할 수 있게 간단한 게임을 만들어 보자.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546import java.io.*;import java.util.*;class MTG{ // Multiplication Table Game ( = 구구단 게임 )BufferedReader br = new BufferedReader(new InputStreamReader(System.in));Random random = new Random();int ranN1 , ranN2 , result;int win , lose;String str;int answer;void question(){ranN1 = random.nextInt(9) + 1; // 0 ~ 8 + 1 => 1 ~ 9ranN2 = random.nextInt(9) + 1;System.out.print(ranN1 + " * " + ranN2 + " = ");result = ranN1 * ranN2;input();}void input(){try{str = br.readLine();answer = Integer.parseInt(str);if(answer == result){System.out.println("정답입니다. 정답 : " + (++win) + ", 오답 : " + lose + "\n");question();}else if(answer == 999){System.out.println("구구단 게임을 종료합니다. 총 게임수 : " + (win+lose) +", 정답 : " + win + ", 오답 : " + lose);System.exit(0);}else{System.out.println("틀렸습니다. 정답 : " + win + ", 오답 : " + (++lose) + "\n");question();}}catch(IOException ioe){System.out.println("정답을 숫자로 입력해 주세요.");input();}}public static void main(String[] args){MTG mtg = new MTG();System.out.println(" 구구단 게임 [ 999 ] 를 입력 하면 종료합니다.");mtg.question();}}cs GUI 를 사용하여 외관을 더 꾸민다면 그럭저럭 괜찮은 결과물이 나올것 같다.
1. 반복문 ( for / while ) 을 알고 싶다.
2. IO 입출력 ( BufferedReader ) 을 알고 싶다.
반응형'Language > Java' 카테고리의 다른 글
[JAVA/자바/TIP1] substring ( 문자열분리 ) (2) 2018.03.05 [JAVA/자바] 로또 예제 (0) 2018.03.02 [JAVA/자바] 별 / 피라미드 예제 (0) 2018.02.27 [JAVA/자바] 가위 바위 보 게임 예제 (0) 2018.02.26 [JAVA 38] 자바 주석 ( Coment ) (0) 2018.02.26