日付7

2165 ワード

今まで学んだことをまとめて電卓にする.
(独自に計算機を作成)
String q = "1. 계산하기\n"
			+"2. 나가기";
	
	Scanner sc = new Scanner(System.in);
				System.out.println(q);
		int choice = sc.nextInt();
		while(true) {
		if(choice == 2) {
			System.out.println("종료");
			break;
			}
			else {
				System.out.println("숫자와 계산부호를 차례로 입력해주세요.");
				int num1 = Integer.parseInt(sc.next());
				String oper = sc.next();
				int num2 = Integer.parseInt(sc.next());
				switch(oper) {
								
				case "+" :
				System.out.println(num1+num2);
				break;
		
				case "-":
				System.out.println(num1-num2);
				break;
				
				case "*":
				System.out.println(num1*num2);
				break;
				
				case "/":
				System.out.println(num1%num2);
				break;
				
				default: 
				System.out.println("?");
		}
		}
}}}
(結果ウィンドウ)

**基本的な計算機能を組み込むことに成功しましたが、以下の先生の例に比べて詳細が下がっています.
(Teacher'sの例)
Scanner sc = new Scanner(System.in);
String menuMsg = "1.계산하기\n2.나가기";
int num1 = 0, num2 = 0;
int choice = 0;
String oper = "";
String result = "";

while(true) {
System.out.println(menuMsg);
choice = sc.nextInt();
if (choice==2) break;
if (choice !=1) continue;
//잘못입력했을 때 continue는 다음 반복으로 넘어가주는 애 즉 첫줄로 넘어감

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

//next 로 받음 왜냐하면 1 + 1 동시에 입력 받을때는 공백을 구분을 하는 next로 써줘야함
//result라는 공간안에 결과를 담아둠 그이후로 마지막에 print함 -> 실무

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으로 나눌 수 없습니다.";
	//else가 아니라면 아직 if랑 else구문이 헷갈림
	}
	break;
	//분모가 0일때
	default: //연산자말고 다른 걸 넣었을때는
		result ="사칙연산 외의 연산자는 사용할 수 없습니다.";
}
System.out.println(result);
}}}
**result実際の作業で使用される簡潔さとユーザーを考慮して、分割時や誤った数字の入力時に数字を追加します.この細部には違いがある.