<명품 JAVA Programming> - Chapter3 연습문제(13, 14, 15, 16)

13. 반복문을 이용하여 369게임에서 박수를 쳐야 하는 경우를 순서대로 화면에 출력해보자. 1부터 시작하며 99까지만 한다.

 

package chapter3;

public class chapter3_13 {
	public static void main(String[] args) {
		int i, a, b; 
		for(i = 1; i <100; i++) {
			a = i / 10;
			b = i % 10;
			if (a > 0 && b > 0 && a % 3 == 0 && b % 3 == 0)
				System.out.println(i + " 박수 짝짝");
			else if (a > 0 && a % 3 == 0)
				System.out.println(i + " 박수 짝");
			else if (b > 0 && b % 3 == 0)
				System.out.println(i + " 박수 짝");
		}
	}
}

 


 

14. 다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.

 

package chapter3;
import java.util.Scanner;

public class chapter3_14 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		String course[] = {"Java", "C++", "HTML5", "컴퓨터구조", "안드로이드" };
		int score[] = {95, 88, 76, 62, 55};
		String name;
		int i, flag;
		while(true) {
			flag = 0;
			System.out.print("과목 이름>>");
			name = scanner.next();
			if(name.equals("그만"))
				break;
			for(i = 0; i < course.length; i++) {
				if(course[i].equals(name)) {
					System.out.println(name + "의 점수는 " + score[i]);
					flag = 1;
				}
			}
			if(flag == 0)
				System.out.println("없는 과목입니다.");
		}
		scanner.close();
	}
}

 


 

15. 다음은 2개의 정수를 입력 받아 곱을 구하는 Multiply 클래스이다.

 

import java.util.Scanner;
public class Multiply {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("곱하고자 하는 두 수 입력>>");
		int n = scanner.nextInt();
		int m = scanner.nextInt();
		System.out.print(n + "x" + m + "=" + n * m);
		scanner.close();
	}
}
다음과 같이 실수가 입력되면 정수를 다시 입력하도록 하여 예외 없이 정상적으로 처리되도록 예외 처리 코드를 삽입하여 Multiply 클래스를 수정하라.

 

package chapter3;
import java.util.Scanner;
import java.util.InputMismatchException;

public class Chapter3_15 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int n = 0, m = 0;
		System.out.print("곱하고자 하는 두 수 입력>>");
		 do {
			try {
				n = scanner.nextInt();
				m = scanner.nextInt();
				System.out.print(n + "x" + m + "=" + n * m);
				break;
			}
			catch (InputMismatchException e) {
				System.out.println("실수는 입력하면 안됩니다.");
				scanner.nextLine();
				continue;
			}
		} while(true);
		scanner.close();
	}
}

 


 

16.컴퓨터와 독자 사이의 가위 바위 보 게임을 만들어보자. 예시는 다음 그림과 같다. 독자부터 먼저 시작한다. 독자가 가위 바위 보 중 하나를 입력하고 <Enter>키를 치면, 프로그램은 가위 바위 보 중에서 랜덤하게 하나를 선택하고 컴퓨터가 낸 것으로 한다. 독자가 입력한 값과 랜덤하게 선택한 값을 비교하여 누가 이겼는지 판단한다. 가위 바위 보 대신 "그만"을 입력하면 게임을 끝낸다.

 

package chapter3;
import java.util.Scanner;
public class Chapter3_16 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		String str[] = {"가위", "바위", "보"};

		System.out.println("컴퓨터와 가위 바위 보 게임을 합니다.");
		while (true) {
			int n = (int)(Math.random()*3);
			System.out.print("가위 바위 보!>>");
			String play = scanner.next();
			if(play.equals("그만")) {
				System.out.println("게임을 종료합니다...");
				break;
			}

			System.out.print("사용자는 " + play + ", 컴퓨터 = " + str[n] + ", ");
			if (play.equals("가위")) {
				if(str[n].equals("가위"))
					System.out.println("비겼습니다.");
				else if(str[n].equals("바위"))
					System.out.println("컴퓨터가 이겼습니다.");
				else if(str[n].equals("보"))
					System.out.println("사용자가 이겼습니다.");
			}
			else if (play.equals("바위")) {
				if(str[n].equals("가위"))
					System.out.println("사용자가 이겼습니다.");
				else if(str[n].equals("바위"))
					System.out.println("비겼습니다.");
				else if(str[n].equals("보"))
					System.out.println("컴퓨터가 이겼습니다.");
			}
			else if (play.equals("보")) {
				if(str[n].equals("가위"))
					System.out.println("컴퓨터가 이겼습니다.");
				else if(str[n].equals("바위"))
					System.out.println("사용자가 이겼습니다.");
				else if(str[n].equals("보"))
					System.out.println("비겼습니다.");
			}
			else
				System.out.println("잘못 입력하셨습니다.");
		}
		scanner.close();
	}
}