try-catch가 포함된 입력부분을 Method로 만들어 사용해보기
//계산기 프로그램
/*
이전에 만들었던 계산기...

숫자 입력받을 때.....

입력 받은 것이 숫자인 것을 검증 받으려고 할때
main안에서 try-catch를 쓰면 너무 많은 while과 try-catch가 들어감...
숫자를 입력받고 try-catch하는 부분을 method로 만들면 
main에서 숫자를 입력받을때 method call만 쓰면 되니까 코드줄이 짧아진다.
 */


import java.util.Scanner;

public class Quiz_07 {

	public static int inputNumber(String msg, String err) {  //인자값을 하나 더 추가해서 err메세지를 받으면
		Scanner sc = new Scanner(System.in);
		int num=0;
		while(true) {
			try {
				System.out.println(msg);
				//System.out.print("첫번째 수 : ");
				num = Integer.parseInt(sc.nextLine());
				break;

			}catch(Exception e) {
				//System.out.println("숫자값이 아닙니다.");
				System.out.println(err); //err메세지도 입력하는 부분마다 다르게 주게 하면 다양한 입력 부분에서 이 메소드가 사용이 가능할 것!!!!!!!!!!!!
				//continue; 

			}
		}
		return num;
	}

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


		System.out.println("=== 계산기 프로그램 ====");
		while(true) {
			System.out.print("연산자 입력 (+,-,*,/) : ");
			String oper = sc.nextLine();

			if(oper.contentEquals("q")) {
				System.out.println("계산기 프로그램을 종료합니다.");
				System.exit(0);
			}else if(oper.contentEquals("+") ||
					oper.contentEquals("-") ||
					oper.contentEquals("*") ||
					oper.contentEquals("/")) {


				int num1=inputNumber("첫번째 수 : ","숫자가 아닙니다");
				int num2=inputNumber("두번째 수 : ","숫자가 아니라고");




				System.out.println("=== 결 과 ===");

				switch(oper) {
				case "+" :
					System.out.println(num1 + "+" + num2+ "=" + (num1+num2));
					break;
				case "-" :
					System.out.println(num1 + "-" + num2+ "=" + (num1-num2));
					break;
				case "*" :
					System.out.println(num1 + "*" + num2+ "=" + (num1*num2));
					break;
				case "/" :
					System.out.println(num1 + "/" + num2+ "=" + (num1/(double)num2));
					break;

					/*
					 * switch에 q에 대한 종료기능을 넣으면,
					 * 연산자에 q를 넣어도 switch문 위에 있는 첫번째,두번째 숫자를 입력하고 끝나기 때문에
					 * 논리적으로는 문제가 없는 로직이지만, 상식적으로 연산자 입력을 받고, 숫자를 입력받기 전에 종료가 되야하기 때문에
					 * 종료에 적절한 시점의 라인에 연산자 입력 q에 대한 실행문코드를 입력해야한다. 
				case "q":
				System.out.println("계산기 프로그램을 좋료합니다.");
				break; // switch를 나가는 목적으로 사용되어서 전체 프로그램 종료는 불가함.
				System.quit(0) // 어느 시점에서건 프로그램 종료해주는 문구
					 */
				}
			}else {
				System.out.println("연산자를 확인하세요.");
			}
		}
	}
}