[Java 예제 1000제] Simple Quiz 2 - 간단한 다지선다형 문제
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
}
문제랑 약간 다르게 풀어봤다 (이전에 풀었던 소스코드를 이용해서 풀었뜸)