정구리의 우주정복
[Java 예제 1000제] Word Scramble 3 - 단어 맞추기 본문
https://cafe.naver.com/javachobostudy
문제
[문제3] 문제2의 예제를 변경해서, 문제를 맞추더라도 프로그램이 종료되지 않고 다음문제를 보여주도록 하세요.
import java.util.*;
class WordScrambleEx3 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
// 코드를 넣어 완성하세요.
// hint : while문을 중첩해서(2개의 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();i++) {
int idx = (int)(Math.random()*str.length());
char tmp = chArr[i];
chArr[i] = chArr[idx];
chArr[idx] = tmp;
}
return new String(chArr);
} // scramble(String str)
}
[실행결과]
Question :IWVE
Your answer is :ievw
ievw은/는 정답이 아닙니다. 다시 시도해보세요.
Question :IWVE
Your answer is :view
정답입니다.
Question :HOEP
Your answer is :hope
정답입니다.
Question :GNCAEH
Your answer is :change
정답입니다.
Question :HECNAG
Your answer is :q
나의 풀이
package prac;
import java.util.*;
class WordScrambleEx3 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
boolean check = true;
while(true) {
String answer = getAnswer(strArr);
String question = getScrambledWord(answer);
while(true){
System.out.println("Question :" + question);
System.out.print("Your answer is :");
Scanner scanner = new Scanner(System.in); //입력 받기
String input = scanner.nextLine();
System.out.println("Your answer is >> "+input);
if(input.equals("q")||input.equals("Q")){
check = false;
break;
}else {
if(input.equalsIgnoreCase(answer)){
System.out.println("정답입니다");
break;
}else{
System.out.println(input+"은 정답이 아닙니다 다시 시도해보세요");
}
}
}
if (check==false) break;
} // 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();i++) {
int idx = (int)(Math.random()*str.length());
char tmp = chArr[i];
chArr[i] = chArr[idx];
chArr[idx] = tmp;
}
return new String(chArr);
} // scramble(String str)
}
check 라는 boolean 변수를 하나 만들어서 break 를 걸어주게끔 만들어주었다 !! 두개의 while 문을 사용하고 어떻게 멈추는게 좋을지 고민하는게 중요했던 문제
'JAVA > STUDY' 카테고리의 다른 글
[Java 예제 1000제] Simple Quiz 1 -간단한 다지선다형 문제 (0) | 2022.02.02 |
---|---|
[Java 예제 1000제] Word Scramble 4 - 단어 맞추기 (0) | 2022.02.02 |
[Java 예제 1000제] Word Scramble 2- 단어 맞추기 (0) | 2022.02.01 |
[Java 예제 1000제] Word Scramble 1- 단어 맞추기 (0) | 2022.02.01 |
[Java] 변수에 대해 (0) | 2022.01.31 |