수업에서 배웠던 문제 중, 다시 풀어봤을 때 조금 힘들었던 문제
문제
사용자가 틀릴 때까지 구구단 문제를 출제하는 프로그램 구현
(2 x 1 부터 19 x 9 까지 구현)
사용자가 3문제를 틀리면 게임오버! 라는 메세지를 출력한 뒤 종료
종료 전에 정답 개수와 점수를 출력
[1] 일반 정답 +10점
[2] 어려운 문제 정답은 5점 추가 (총 15점) 11단부터~
정답
Scanner sc = new Scanner(System.in);
int cnt = 0; // 문제 횟수
int tot = 0; // 점수
int cor = 0; // 정답 갯수
int over = 2; // 오답 기회
while(true) {
int a = (int)(Math.random() * 14) + 2;
int b = (int)(Math.random() * 9) + 1;
cnt++;
int com = a * b;
System.out.print("\n" + cnt + ". " + a + " × " + b + " = ");
int user = sc.nextInt();
if(com == user) {
cor++;
tot += 10;
System.out.println("정답! 10점 획득!");
if(a >= 11) {
System.out.println("어려운 문제! 5점 추가 획득!");
tot += 5;
}
}else {
tot -= 5;
if(over == 0) {
System.out.println("게임 오버!");
System.out.println("총 문제 갯수 : " + cnt + "개");
System.out.println("총 정답 갯수 : " + cor + "개");
System.out.println("총 점수 : " + tot + "점");
break;
}
System.out.println("오답! 5점 감점! " + over + "번 남았습니다.");
over --;
}
}
}
** 반복문을 만들 때, 문제인 a와 b를 정의부에 두고 반복문을 실행하려했기 때문에 고정된 문제가 반복돼어 while문 안에 while문을 또 쓰는 상황까지 발생...ㅎ;; 단순히 문제를 while문 안에 두면 반복되면서 새로운 문제가 생성 됨
'IT 언어 > Java' 카테고리의 다른 글
[Java] 이차원 배열 --*Q/A (0) | 2023.12.11 |
---|---|
[Java] 배열 --*Q/A (0) | 2023.12.01 |
[Java] 랜덤 Math.radom() --*Q/A (2) | 2023.11.27 |
[Java] 제어문 (조건문, 선택문, 반복문) --*Q/A (0) | 2023.11.27 |
[Java] 입출력(I/O) --*Q/A (0) | 2023.11.24 |