Coding/Java Quiz

Java Quiz 세번째

AimReach 2017. 12. 20. 19:02

//[문제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문의 시작점에서 어디에 무엇이 어떤식으로 들어가는지를 잘 생각해보자!