Java Quiz 세번째
//[문제3] 문제2의 예제를 변경해서, 문제를 맞추더라도 프로그램이 종료되지 않고 다음문제를 보여주도록 하세요.
package Practice;
import java.util.Scanner;
public class Practice03 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
// 코드를 넣어 완성하세요.
// hint : while문을 중첩해서(2개의 while문) 작성하세요.
Scanner scanner = new Scanner(System.in);
System.out.println("Q or q 입력시 종료됩니다.");
while(true) {
String answer = getAnswer(strArr);
String question = getScrambledWord(answer);
Loop1 : while(true) {
System.out.println("Question :" + question);
System.out.print("Your answer is :");
// 1. 화면을 통해 사용자의 입력을 받는다.(Scanner클래스 사용)
// 2. 사용자가 q 또는 Q를 입력하면 프로그램을 종료한다.
// 3. 사용자가 정답을 맞출때까지 반복하다가
// 사용자가 정답을 맞추면, while문을 빠져나간다.
String input = scanner.nextLine();
if(input.equalsIgnoreCase("q")) {
break;
}
if(input.equalsIgnoreCase(answer)) {
System.out.println("정답입니다. 수고링~");
break Loop1;
}else {
System.out.println(input+"은/는 정답이 아닙니다. 다시 시도해보세요.");
continue;
}
} //안쪽 while문
} //바깥쪽 while문
} // main
public static String getAnswer(String[] strArr) {
int idx = (int)(Math.random()*strArr.length);
return strArr[idx];
}
public static String getScrambledWord(String str) {
char[] chArr = str.toCharArray();
for(int i=0;i < str.length()*2;i++) {
int idx = (int)(Math.random()*str.length());
char tmp = chArr[0];
chArr[0] = chArr[idx];
chArr[idx] = tmp;
}
return new String(chArr);
} // scramble(String str)
}
while문의 시작점에서 어디에 무엇이 어떤식으로 들어가는지를 잘 생각해보자!