본문 바로가기
Java

[Java] 계산기

by 엘딘 2022. 5. 2.
import java.util.Scanner;

public class calculator_강사님 {

    public static void main(String[] args) {


        /*
            계산기			
        */

    //	String numStr1, numStr2;
        int number1, number2;
        String oper;
        int result = 0;

        // 1.입력
        // 1번째 숫자
        number1 = numberInput("첫번째 수 = ");
        /*
        while(true) {		
            System.out.print("첫번째 수 = ");
            numStr1 = sc.next();
            boolean ok = true;
            for (int i = 0; i < numStr1.length(); i++) {
                int n = (int)numStr1.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장
                if(n < 48 || n > 57) {
                    ok = false;			
                    break;
                }
            }			
            if(ok == true) {
                break;
            }	
            System.out.println("숫자를 정확히 입력해 주세요.");
        }
        */

        // 연산자 + - * /
        oper = operatorInput();
        /*
        while(true) {
            System.out.print("연산(+, -, *, /) = ");
            oper = sc.next();
            if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
                break;
            }
            System.out.println("연산자를 정확히 입력해 주십시오");
        }*/		

        // 2번째 숫자
        number2 = numberInput("두번째 수 = ");
        /*
        while(true) {
            System.out.print("두번째 수 = ");
            numStr2 = sc.next();

            boolean ok = true;
            for (int i = 0; i < numStr2.length(); i++) {
                int n = (int)numStr2.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장
                if(n < 48 || n > 57) {
                    ok = false;			
                    break;
                }
            }			
            if(ok == false) {
                continue;
            }						
            break;
        }*/

    //	number1 = Integer.parseInt(numStr1);
    //	number2 = Integer.parseInt(numStr2);

        // 2.연산
        result = calculator(number1, number2, oper);
        /*
        switch(oper) {
            case "+":
                result = number1 + number2;
                break;
            case "-":
                result = number1 - number2;
                break;
            case "*":
                result = number1 * number2;
                break;
            case "/":
                result = number1 / number2;
                break;
        }
        /**/

        /*
        if(oper.equals("+")) {
            result = number1 + number2;
        }
        else if(oper.equals("-")) {
            result = number1 - number2;
        }
        else if(oper.equals("*")) {
            result = number1 * number2;
        }
        else if(oper.equals("/")) {
            result = number1 / number2;
        }
        /**/

        // 3.결과 출력
        resultPrint(number1, number2, oper, result);

    //	System.out.println(number1 + " " + oper + " " + number2 + " = " + result);
    }

    static int numberInput(String msg) {
        Scanner sc = new Scanner(System.in);		
        String numStr;
        while(true) {		
            System.out.print(msg);
            numStr = sc.next();

            boolean ok = numberCheck(numStr);

            /*
            for (int i = 0; i < numStr.length(); i++) {
                int n = (int)numStr.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장
                if(n < 48 || n > 57) {
                    ok = false;			
                    break;
                }
            }
            */			
            if(ok == true) {
                break;
            }	
            System.out.println("숫자를 정확히 입력해 주세요.");
        }

        int number = Integer.parseInt(numStr);		
        return number;
    }

    static boolean numberCheck(String numStr) {
        boolean ok = true;
        for (int i = 0; i < numStr.length(); i++) {
            int n = (int)numStr.charAt(i);	// 입력받은 문자열에서 한글자씩 산출하는 문장
            if(n < 48 || n > 57) {
                ok = false;			
                break;
            }
        }
        return ok;
    }

    static String operatorInput() {
        Scanner sc = new Scanner(System.in);		
        String oper = "";
        while(true) {
            System.out.print("연산(+, -, *, /) = ");
            oper = sc.next();
            if(oper.equals("+") || oper.equals("-") || oper.equals("*") || oper.equals("/")) {
                break;
            }
            System.out.println("연산자를 정확히 입력해 주십시오");
        }
        return oper;
    }

    static int calculator(int number1, int number2, String oper) {
        int result = 0;
        switch(oper) {
            case "+":
                result = number1 + number2;
                break;
            case "-":
                result = number1 - number2;
                break;
            case "*":
                result = number1 * number2;
                break;
            case "/":
                result = number1 / number2;
                break;
        }
        return result;
    }

    static void resultPrint(int number1, int number2, String oper, int result) {
        System.out.println(number1 + " " + oper + " " + number2 + " = " + result);
    }

}

'Java' 카테고리의 다른 글

[Java] Interface2  (0) 2022.05.16
switch  (0) 2022.05.10
[Java] Override  (0) 2022.04.12
[Java] Interface  (0) 2022.04.11
[Java] Inheritance(상속)2  (0) 2022.04.11

댓글