본문 바로가기
JAVA/이재환의 자바 프로그래밍 입문

[Java] Ch.8 계산기 만들기

by ♡˖GYURI˖♡ 2023. 10. 16.
import java.util.Scanner;

public class Mycalculator
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);	// 입력 처리 객체
		
		while(true)
		{
			showMenu();
			
			// int num = sc.nextInt();
			
			char myChar = sc.next().charAt(0);
			if (!checkNum(myChar))
			{
				System.out.println("메뉴를 잘못 선택했습니다.");
				continue;
			}
			
			int num = myChar - '0';	
            		// int 변수 = 문자 - 문자; -> 산술 연산이기 때문에 
                    	// char형 데이터는 int형 데이터로 형변환 됨
			System.out.println(num);
			
			if (num == 0) 
			{
				break;
			}
			else
			{
				if (num > 4)
				{
					System.out.println("메뉴를 잘못 선택했습니다.");
					continue;
				}
				
				System.out.print("첫 번째 숫자: ");
				int num1 = sc.nextInt();
				System.out.print("두 번째 숫자: ");
				int num2 = sc.nextInt();
				
				if (num == 1)
					addNum(num1, num2);
				else if (num == 2)
					minusNum(num1, num2);
				else if (num == 3)
					multiplyNum(num1, num2);
				else if (num == 4)
					divideNum(num1, num2);
			}
		}
		System.out.println("계산기를 종료합니다.");
	}
	
	public static void showMenu() 
	{
		System.out.println("메뉴를 선택하세요.");
		System.out.println("1. 더하기");
		System.out.println("2. 빼기");
		System.out.println("3. 곱하기");
		System.out.println("4. 나누기");
		System.out.println("0. 끝내기");
	}
	
	public static void addNum(int num1, int num2)
	{
		int result = num1 + num2;
		System.out.println(num1 + " + " + num2 + " = " + result);
	}
	
	public static void minusNum(int num1, int num2)
	{
		int result = num1 - num2;
		System.out.println(num1 + " - " + num2 + " = " + result);
	}
	
	public static void multiplyNum(int num1, int num2)
	{
		int result = num1 * num2;
		System.out.println(num1 + " * " + num2 + " = " + result);
	}
	
	public static void divideNum(int num1, int num2)
	{
		int result1 = num1 / num2;
		System.out.println(num1 + " / " + num2 + " = " + result1);
		
		int result2 = num1 % num2;
		System.out.println(num1 + " % " + num2 + " = " + result2 );
	}
	
	public static boolean checkNum(char ch)
	{
		if (ch >= '0' && ch <= '9')
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}