정구리의 우주정복
[Java 예제 1000제] Word Scramble 2- 단어 맞추기 본문
https://cafe.naver.com/javachobostudy
문제
[문제2] 다음의 예제에서 while문의 내부를 주석의 내용을 참고해서 완성하세요.
import java.util.*;
class WordScrambleEx2 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
String answer = getAnswer(strArr);
String question = getScrambledWord(answer);
while(true) {
System.out.println("Question :" + question);
System.out.print("Your answer is :");
// 1. 화면을 통해 사용자의 입력을 받는다.(Scanner클래스 사용)
// 2. 사용자가 q 또는 Q를 입력하면 프로그램을 종료한다.
// 3. 사용자가 정답을 맞출때까지 반복하다가
// 사용자가 정답을 맞추면, 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();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 :HEOP
Your answer is :phoe
phoe은/는 정답이 아닙니다. 다시 시도해보세요.
Question :HEOP
Your answer is :hope
정답입니다.
[출처] [Java1000제]Word Scramble 2 - 단어 맞추기(1번답 포함) (남궁성의 코드초보스터디(자바 java, c언어, javascript, python) | 작성자 남궁성
나의 정답
package prac;
import java.util.*;
class WordScrambleEx2 {
public static void main(String[] args) {
String[] strArr = { "CHANGE", "LOVE", "HOPE", "VIEW"};
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();
if(input.equals("q")||input.equals("Q")){
break;
}else{
System.out.println("Your answer is >> "+input);
if(input.equalsIgnoreCase(answer)){ //대소문자 구분 없이
System.out.println("정답입니다");
break;
}else{
System.out.println(input+"은 정답이 아닙니다 다시 시도해보세요");
}
}
// 1. 화면을 통해 사용자의 입력을 받는다.(Scanner클래스 사용)
// 2. 사용자가 q 또는 Q를 입력하면 프로그램을 종료한다.
// 3. 사용자가 정답을 맞출때까지 반복하다가
// 사용자가 정답을 맞추면, 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();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)
}
!!주의 해야할 점 !!
input.equals('q')
와
input.equals("q") 는 다르다 !! '' 를 쓰면 char 로 인식되고 "" 를 쓰면 String 으로 인식이 된다
equalsIgnoreCase 를 사용하면 equals 와 다르게 대소문자를 구분하지 않고 같은지 확인해준다
'JAVA > STUDY' 카테고리의 다른 글
[Java 예제 1000제] Word Scramble 4 - 단어 맞추기 (0) | 2022.02.02 |
---|---|
[Java 예제 1000제] Word Scramble 3 - 단어 맞추기 (0) | 2022.02.01 |
[Java 예제 1000제] Word Scramble 1- 단어 맞추기 (0) | 2022.02.01 |
[Java] 변수에 대해 (0) | 2022.01.31 |
[Java] 구분구적법을 이용해 원의 넓이 구하기 (0) | 2018.11.09 |