요일을 표시하고 해당 요일의 영어 단어를 입력하는 영어 학습 프로그램
- 요일은 난수를 이용해서 생성
- 학습자가 원하는 만큼 반복
- 동일 요일을 연속해서 표시하지 말 것
import java.util.Random;
import java.util.Scanner;
Scanner stdIn = new Scanner(System.in);
String[] dayKorean = {"월", "화", "수", "목", "금", "토"};
String[] dayEnglish = {"Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"};
String answer = new String();
Random rand = new Random();
int day = 0;
int last = 8; // 초기값이 day와 같지 않도록 설정
System.out.println("요일 영어단어 학습 프로그램.");
while(true) { // 전체
while (true) { // 난수 생성
day = rand.nextInt(7); // 0~6 의 난수 생성
if (day==last) continue;
// 지난 회차의 index와 이번 회차의 index가 일치할 경우, 다시 난수 생성
else {
last = day;
break;
} // else
} // while - 난수 생성
while (true) { // Question
System.out.print(dayKorean[day]+"요일을 영어로 쓰시오: ");
answer = stdIn.next();
if (answer.toLowerCase().equals(dayEnglish[day].toLowerCase())) {
System.out.println("정답입니다.");
break;
}
else {
System.out.print("틀렸습니다.");
System.out.println();
continue;
} // else
} // while - Question
System.out.print("계속하시겠습니까? 예(0), 아니오(1)");
int contin = stdIn.nextInt();
if (contin==1) {
System.out.println("프로그램 종료.");
break; // 종료}
}
else {
System.out.println("계속합니다.");
continue;}
} // while - 전체
결과
요일 영어단어 학습 프로그램.
월요일을 영어로 쓰시오: monday
정답입니다.
계속하시겠습니까? 예(0), 아니오(1)0
계속합니다.
금요일을 영어로 쓰시오: thursday
틀렸습니다.
금요일을 영어로 쓰시오: friday
정답입니다.
계속하시겠습니까? 예(0), 아니오(1)1
프로그램 종료.
'Java > Java 기초' 카테고리의 다른 글
Java11 메서드(Method)와 오버로딩(overloading) (0) | 2020.05.12 |
---|---|
Java10 참조형 객체, 2차원 배열 (0) | 2020.05.11 |
Java8 배열과 확장for문 (0) | 2020.05.07 |
Java7 기본 자료형과 연산 (0) | 2020.05.05 |
Java6 반복문 for (0) | 2020.05.04 |