728x90
반응형
문제
- Random 함수를 이용한다.
- 무한 반복문을 이용한다.
- 몇 문제를 풀 것인지 입력 받고, 입력 받은 숫자만큼 문제를 출력한다.
- 정수형 변수 num1과 num2에 랜덤 값을 넣는다.
- num1의 값과 num2의 값을 곱한 결과와 사용자가 입력한 값이 같은지 비교하여 정답과 오답을 출력한다.
- 모든 문제가 종료된 뒤 0을 입력하면 break문을 이용해 무한 반복문을 입력을 종료한다. 0 외의 숫자를 입력하면 다시 문제 수를 입력 받는다.
코드
//곱셈 문제
Random rand = new Random(); //랜덤 값
Scanner scan = new Scanner(System.in); //입력
int first=1;//문제를 구분하는 선을 출력하기 위해 선언
while(true){
if(first!=1)//문제를 구분하기 위해 출력. 문제 풀이를 두 번 이상 반복할 때 출력
System.out.println("-------------------------------------------------------------------");
first=0;
System.out.print("문제 수를 입력하시오 >> ");
int work = scan.nextInt();
System.out.println("총 "+work+"문제가 출력됩니다.\n");
for(int i=1;i<=work;i++){
//곱셈 값 만들기
int num1 = rand.nextInt(8)+2; // 2단부터 9단까지 출력
int num2 = rand.nextInt(9)+1; // 1부터 9까지 출력
int multiplication = num1*num2; //곱셈의 정답을 저장하는 변수
System.out.printf("%d번 문제:%d*%d=",i,num1,num2); //랜덤 문제 출력
//정답 맞추기
int check = scan.nextInt(); //입력한 값이 정답이 맞는지 확인하는 변수
if(check==multiplication)
System.out.println("정답입니다.");
else
System.out.printf("오답입니다.정답은 %d입니다.\n",multiplication);
System.out.println(); //한 문제가 끝나면 줄바꿈
}
//문제 종료
int question = 1;
System.out.print("계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> ");
question =scan.nextInt();
if(question== 0)
break; //무한 반복 종료
}
System.out.println("수고하셨습니다. 문제 풀이가 종료되었습니다.");
scan.close();
출력 결과
문제 수를 입력하시오 >> 2
총 2문제가 출력됩니다.
1번 문제:7*2=14
정답입니다.
2번 문제:4*5=22
오답입니다.정답은 20입니다.
계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> 1
-------------------------------------------------------------------
문제 수를 입력하시오 >> 1
총 1문제가 출력됩니다.
1번 문제:2*8=16
정답입니다.
계속해서 문제를 푸시겠습니까? 종료를 원하시면 0을 입력해주세요. >> 0
수고하셨습니다. 문제 풀이가 종료되었습니다.
728x90
반응형
'HRD_훈련 > 실습' 카테고리의 다른 글
[JAVA] 선택 정렬과 버블 정렬 (1) | 2023.05.25 |
---|---|
[JAVA] UP&DOWN 답 맞추기 (0) | 2023.05.25 |
[JAVA] Math.random()을 이용한 LOTTO (0) | 2023.05.23 |
[JAVA] 주민등록번호를 입력 받아 남자인지 여자인지 판별 (0) | 2023.05.22 |
[JAVA] 반복문을 이용한 별 출력 (0) | 2023.05.21 |