728x90
반응형
https://hobby-it-learn.tistory.com/12
JAVA Thread 클래스
이번 숙제는 Thread 클래스를 이용하여 코드를 작성하는 것이다. //Quiz Thread클래스를 만들어 스레드를 상속받는다. //startGame() 메서드를 만들고 그 안에서 1~100사이의 //난수 두개를 더하는 문제를
hobby-it-learn.tistory.com
이 문제 후편입니다..
문제 풀면서 while문으로도 할수있을까 생각했던 저에게
선생님은 그 방법을 알려주셨습니다 ㅎㅎ
main 클래스 코드입니다.
import java.util.Scanner;
public class QuizMain {
public static void main(String[] args) {
// Quiz Thread클래스를 만들어 스레드를 상속받는다.
// startGame() 메서드를 만들고 그 안에서 1~100사이의
// 난수 두개를 더하는 문제를 출제
// 키보드에서 답을 입력하여 5문제가 정답처리 될때까지 로직을 반복한다
// 정답을 맞히고 난 후에 모든 문제를 맞히는데 몇 초가 걸렸는지를 화면에 출력하며
// 프로그램 종료
// QuizMain 클래스에서는
// QuizThread qt = new QuizThread();
// qt.start(); 스레드 구동
// qt.startGame(); 문제풀이 함수
// 위 세줄 외에는 다른 코드는 추가하지 않도록 한다.
// 단, 사용자가 문제의 정답으로 정수 이외의 문자를 입력했을 경우에
// "정답은 정수로 입력하세요" 라는 문장이 출력되도록 한다.
// ---------- 실행결과 ------------
/*
* 23+48 =71 정답!! 66+100=166 정답!! 2+5=8 틀렸습니다. . 결과: 24초...
*/
Scanner sc = new Scanner(System.in);
System.out.println("-------- 실행 결과 ---------- ");
QuizThread qt = new QuizThread();
Thread th = new Thread(qt);
qt.start(); // run()메서드를 호출하는 메서드
qt.startGame();
}
}
import java.util.Random;
import java.util.Scanner;
import com.sun.net.httpserver.Authenticator.Result;
public class QuizThread extends Thread{
int su1,su2;//난수 2개 넣어줄 변수
int timer; //시간을 재기 위한 변수
int count; //문제를 맞춘 개수를 세줄 변수
boolean isCheck = true;
final int FINISH = 5; //상수의 이름은 대문자.
public void startGame() {
while(isCheck) {
su1 = new Random().nextInt(100)+1;
su2 = new Random().nextInt(100)+1;
System.out.printf("%d + %d = ",su1,su2);
Scanner sc = new Scanner(System.in);
int result = sc.nextInt(); //문제에 정답을 키보드에서 입력받기\
//정답을 체크하는 로직
if(result == (su1 + su2)) {
System.out.println("정답!!"); //이 구단 아래에 count작성해도 됨.
}else {
System.out.println("틀렸습니다.");
continue;
}
count++;
if(count == FINISH) {
System.out.println("결과 : " + timer + "초");
isCheck = false;
}
}
}
@Override
public void run() {
try {
Thread.sleep(1000);
timer++;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
while과 if문을 이용한 방법입니다.
코딩은 여러가지 방법이 있어서 신기하고 재밌는거 같습니다 ㅎ
728x90
반응형
'JAVA(폐쇄) > 문제풀이' 카테고리의 다른 글
BAECK JOON(백준)-2739번 구구단 (0) | 2023.03.13 |
---|---|
JAVA - MAP 컬렉션 클래스 (0) | 2023.03.08 |
BEACK JOON(백준) 11021번 A+B-7 (0) | 2023.03.08 |
JAVA Thread 클래스 (2) | 2023.03.04 |
백준(BACKJOON) 18108 문제풀이 JAVA (0) | 2023.03.01 |