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
반응형

+ Recent posts