728x90

사칙연산을 하는 계산기를 만들어보자.

package day07;

import java.util.Scanner;

public class Calc {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 =0, num2 =0;
		int choice = 0;
		String menuMsg = "1.계산하기\n2.나가기";
		String oper="";
		String result = "";
		
		
		while(true) {
			System.out.println(menuMsg);
			choice = sc.nextInt();
			if(choice == 2)break;
			if(choice != 1)continue;
			
			num1 = Integer.parseInt(sc.next());
			oper = sc.next();
			num2 = Integer.parseInt(sc.next());
			
			switch(oper) {
			case "+":
				result = ""+(num1+num2);
				break;
			case "-":
				result = ""+(num1-num2);
				break;
			case "*":
				result = ""+(num1*num2);
				break;
			case "/":
				if(num2 !=0 ) {
					result = ""+(num1/num2);
				}else {
					result = "0으로 나눌 수 없습니다.";
				}
				break;
				default:
					result="사칙연산 외의 연산자를 사용할 수 없습니다.";
			}
			System.out.println(result);
		}
		
	
	}

}

num1 = Integer.parseInt(sc.next());
oper = sc.next();
num2 = Integer.parseInt(sc.next());

여기서 next()를 사용한 이유는 next()는 공백을 구분점으로 받기 때문이다.
한줄에 1 + 1 를 입력하기 위해서 next()를 사용했다.


switch문안에 result = ""+(num1+num2);는 result는 String타입으로 선언했기 때문에
""+(~) 같은 모양을 통해 (num1+ num2) int형을 문자열로 형변환을 한 것이다. 
그래서 문자형인 result로 문제없이 나올 수 있다.

728x90

'JAVA' 카테고리의 다른 글

배열 연습문제03  (0) 2020.08.12
계산기 만들기02 (클래스, Scanner, 생성자)  (0) 2020.08.03
import , 다른 패키지의 클래스를 불러오는방법  (0) 2020.08.03
2차원배열  (0) 2020.08.02
switch 연습01  (0) 2020.07.31

+ Recent posts