정구리의 우주정복

[Java 예제 1000제] Simple Quiz 2 - 간단한 다지선다형 문제 본문

JAVA/STUDY

[Java 예제 1000제] Simple Quiz 2 - 간단한 다지선다형 문제

Jungry_ 2022. 2. 2. 19:51
반응형

https://cafe.naver.com/javachobostudy

 

남궁성의 코드초보스터디(자바 java... : 네이버 카페

전문가가 지도하는 스터디카페에요. 프로그래밍언어(자바 java, C언어)를 제대로 배우고픈 분들 오세요.

cafe.naver.com

 

문제


[문제2] 문제1에서 완성된 코드에 사용자 입력을 받아서 정답여부를 판단하여 마지막에 최종점수를

           실행결과와 같이 출력하도록 코드를 완성하세요.

 

[예제QuizEx2.java]

import java.util.*;

class QuizEx2 {
      public static void main(String[] args) {
            String[] data = {
                  "다음 중 키워드가 아닌 것은?`2`final`True`if`public",
                  "다음 중 자바의 연산자가 아닌 것은?`6`&`|`++`!=`/`^",
                  "다음 중 메서드의 반환값이 없음을 의미하는 키워드는?`1`void`null`false`",
            };
           
            Scanner s = new Scanner(System.in);
            int score = 0;

            for(int i=0;i < data.length;i++) {
                  String[] tmp = data[i].split("`",3);

                  String question = tmp[0];
                  String answer = tmp[1];
                  String[] choices = tmp[2].split("`");

                  System.out.println("["+(i+1)+"] "+question);
                 
                  for(int x=0;x < choices.length;x++) {
                        System.out.print((x+1)+"."+choices[x]+"\t");
                  }
                  System.out.println(); 


                  /*

                       알맞은 코드를 넣으세요.

                  */

 

                  System.out.println();
                  System.out.println();
            } 
           

            // 알맞은 코드를 넣으세요.

      } // main
}

 

나의 풀이


package prac;

import java.util.Scanner;

class QuizEx2 {
    public static void main(String[] args) {
        String[] data = {
                "다음 중 키워드가 아닌 것은?`2`final`True`if`public",
                "다음 중 자바의 연산자가 아닌 것은?`5`&`|`++`!=`/`^",
                "다음 중 메서드의 반환값이 없음을 의미하는 키워드는?`1`void`null`false",
        };

        Scanner s = new Scanner(System.in);
        int score = 0;
        String[] answer = {"2", "6", "1"};

        String[][] arr = new String[data.length][];
        for (int i = 0; i < data.length; i++) {
            //arr[i] = data[i].split("`",data[i].length());
            arr[i] = data[i].split("`");
            System.out.println("[" + (i + 1) + "] " + arr[i][0]);// 문제 출력하기
            for (int j = 1; j < arr[i].length; j++) {
                System.out.print(j + "." + arr[i][j] + " ");
            }
            System.out.println("");
            System.out.print("[답] >> ");
            String input = s.nextLine(); // 입력받기
            if (input.equals(answer[i])) {
                score += 1;
            }

            System.out.println("");
        }
        System.out.println("정답 개수 / 전체 문항수 >> "+score+"/"+data.length);
    } // main
}

문제랑 약간 다르게 풀어봤다 (이전에 풀었던 소스코드를 이용해서 풀었뜸)

반응형
Comments