본문 바로가기

국비교육/국비교육 복습

Day06_loop_Test14 : 구구단 문제 (combo 기능 구현) (★)

(Q) 구구단 구현
숫자 입력시 해당 숫자의 x9까지 출력
5 X 1 = ? (?에 사용자가 정답 입력하게 한다)
5 X 2 = ?
5 X 3 = ?
5 X 4 = ?
5 X 5 = ?
5 X 6 = ?
5 X 7 = ?
5 X 8 = ?
5 X 9 = ?
끝날 때 정답 ?개 / 오답 ?개

 

맞은 갯수당 + 10점, 틀린 갯수당 -1점을 적용하며

★ 문제를 연달아 맞출 경우 콤보가 적용되어 가산점 10점에 combo를 곱한 점수를 얻을 수 있도록 구현

 

 

package day06;

import java.util.Scanner;

public class Day06_loop_Test14 {
	
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		//단수 입력
		int input = sc.nextInt();
		
		int countO = 0;		//맞은 갯수
		int countX = 0;		//틀린 갯수
		int combo = 0;
		int totalScore = 0;
		for(int i = 1 ; i <= 9 ; i ++) {
			System.out.print(input + " X " + i + " = ");
			int answer = sc.nextInt();		//정답 입력
			if(answer == input * i) {
				countO ++;			//정답이라면 countO +1
				combo ++;			//combo 카운트 증가
				totalScore += 10 * combo;	//combo를 적용한 점수
			}
			else {
				countX ++;			//오답이라면 countX +1
				combo = 0;			//오답이라면 combo 카운트를 0으로 초기화시킨다
				totalScore -= 10;			
			}
		}
		
		System.out.println("맞은 갯수 : " + countO);
		System.out.println("틀린 갯수 : " + countX);
		System.out.println("총점 : ");
	}
}

 

** for 반복문을 구성하는 순서가 중요하다

i) 정답일 경우

- 맞은 갯수(countO)가 1만큼 증가한다

- 콤보 카운터(combo)가 1만큼 증가한다

- 총 점수(totalScore)가 콤보 카운터가 적용된 점수(10 * combo)만큼 증가한다

 

ii) 오답일 경우

- 틀린 갯수(countX)가 1만큼 증가한다

- 콤보 카운터가 0으로 초기화(combo = 0;)된다 (combo 변수에 0을 대입한다)

- 총 점수(totalScore)가 10점 감소한다