본문 바로가기
STUDY/Java

[Java] 명품 JAVA 프로그래밍 제3장 반복문과 배열 그리고 예외 처리 : Open Challenge 카드 번호 맞추기 게임

by devohda 2020. 8. 28.

 

 

 

3장에서는 반복문, 배열, 예외 처리에 대해 배웠다.

C, C++에서 이미 한 번 공부했던 내용이라 어렵지 않게 이해할 수 있었다.

레퍼런스라는 개념 또한 포인터와 유사했다.

 

 

 

예외 클래스가 있는 것을 처음 알게 되었다.

try-catch를 할 때, catch 조건에 예외 클래스를 넣어주면 그에 맞게 예외가 처리된다.

  • ArithmeticException
  • NullPointerException
  • ClassCastException
  • ...

와 같은 예외 타입(클래스)들이 있으며 어떤 것은 패키지를 import해서 사용해야 한다. (ex. InputMismatchException)

 

 

 

+ enum 에 대해 잠깐 언급한 부분이 있는데, 조금 더 공부해서 포스팅할 예정이다.

아래는 enum 을 사용한 코드를 설명한 포스팅인데 유익한 것 같아 올려본다.

https://woowabros.github.io/tools/2017/07/10/java-enum-uses.html 

 

 

카드 번호 맞추기 게임(up & down 게임)

 

조건 : while 반복문(이중 반복문), if 문, Scanner로 실전 응용 연습

조건에 따라 이중 반복문으로 작성하였다.

 

소스 코드

import java.util.Scanner;
import java.util.Random; //랜덤 수 얻기 위해 사용.

public class UpDownGame {

	public static void startMessage() { //게임 시작 멘트
		System.out.println("수를 결정하였습니다. 맞추어 보세요");
		System.out.println("0~99");
	}

	public static void main(String[] args) {

		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		Random random = new Random();

		while (true) {
			startMessage();
			
			int round = 0;
			int answer = random.nextInt(100); //임의의 수를 가진 카드 선정
			String retry = "y";
			
			while (true) {
				System.out.print(++round + ">>");
				int guess = scanner.nextInt();
				
				if (answer == guess) {
					System.out.println("맞았습니다.");
					System.out.print("다시하시겠습니까(y/n)>>");
					retry = scanner.next();
					break;
				}else {
					if (answer > guess) {
						System.out.println("더 높게");
					}
					else {
						System.out.println("더 낮게");
					}
				}
			}
			
			if (retry.equals("n")) { // n이 입력되면 종료
				break;
			}
		}
		scanner.close();
	}

}

댓글