본문 바로가기
공부/코드모음

[5月] 단순한 계산기 만들기

by 예림220 2023. 5. 21.

 

단순한 계산기를 처음 만들어봤다. 처음 만든 코드라 부족한 게 많고, 내가 찾지 못한 오류도.. 있을 것 같다.

무엇보다 단순한 코드를 계속 반복해서 쓰다보니 가독성이 떨어진다. 

객체지향언어니 무슨 클래스 나눠서 막 어떻게 만들면 제대로 계산기가 만들어질 것 같긴한데... 

초보 개발자(자바공부 13일차)인 나에게는 이 코드가 최선이다..... 흑...

더 잘만들고 싶다! 

 

[소스코드 공유]

 

import java.util.Scanner;

public class calculator {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("덧셈, 뺄셈, 곱셈, 나눗셈 중 어느 것을 진행하겠습니까?");

System.out.println("덧셈은 '1', 뺄셈은 '2', 곱셈은 '3', 나눗셈은 '4'를 입력해주세요");

int userChoice = Integer.parseInt(sc.nextLine());

if (userChoice>4) {

System.out.println("잘못입력하셨습니다. 다시 입력해주세요.");

System.out.println("덧셈은 '1', 뺄셈은 '2', 곱셈은 '3', 나눗셈은 '4'를 입력해주세요");

userChoice = Integer.parseInt(sc.nextLine());

};

 

// 덧셈

if (userChoice==1) {

System.out.println("덧셈을 할 숫자 2개를 차례대로 입력해주세요.");

int firstNum = Integer.parseInt(sc.nextLine());

int secondNum = Integer.parseInt(sc.nextLine());

System.out.println("덧셈 결과는 "+ (firstNum+secondNum) + "입니다.");

System.out.println("다시 하시겠습니까?");

System.out.println("(다시하시길 원하시면 Y 혹은 y를 입력해주세요)");

String yes = sc.nextLine();

System.out.println(yes);

if(yes.equals("y")||yes.equals("Y")) {

System.out.println("덧셈을 할 숫자 2개를 차례대로 입력해주세요");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

System.out.println("덧셈 결과는 "+ (firstNum+secondNum) + "입니다.");

System.out.println("덧셈이 종료되었습니다.");

 

}else {

System.out.println("계산이 종료되었습니다.");

};

}

 

// 뺄셈

if (userChoice==2) {

System.out.println("뺼셈을 할 숫자 2개를 차례대로 입력해주세요.");

int firstNum = Integer.parseInt(sc.nextLine());

int secondNum = Integer.parseInt(sc.nextLine());

if(firstNum<secondNum) {

System.out.println("숫자를 잘못 입력하셨습니다. 다시 입력해주세요.");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

}

System.out.println("뺄셈 결과는 "+ (firstNum-secondNum) + "입니다.");

System.out.println("다시 하시겠습니까?");

System.out.println("(다시하시길 원하시면 Y 혹은 y를 입력해주세요)");

String yes = sc.nextLine();

System.out.println(yes);

if(yes.equals("y")||yes.equals("Y")) {

System.out.println("뺼셈을 할 숫자 2개를 차례대로 입력해주세요");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

if(firstNum<secondNum) {

System.out.println("숫자를 잘못 입력하셨습니다. 다시 입력해주세요.");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

}

System.out.println("뺄셈 결과는 "+ (firstNum-secondNum) + "입니다.");

System.out.println("뺄셈이 종료되었습니다.");

}else {

System.out.println("계산이 종료되었습니다.");

};

}

 

// 곱셈

if (userChoice==3) {

System.out.println("곱셈을 할 숫자 2개를 차례대로 입력해주세요.");

int firstNum = Integer.parseInt(sc.nextLine());

int secondNum = Integer.parseInt(sc.nextLine());

System.out.println("곱셈 결과는 "+ (firstNum*secondNum) + "입니다.");

System.out.println("다시 하시겠습니까?");

System.out.println("(다시하시길 원하시면 Y 혹은 y를 입력해주세요)");

String yes = sc.nextLine();

System.out.println(yes);

if(yes.equals("y")||yes.equals("Y")) {

System.out.println("곱셈을 할 숫자 2개를 차례대로 입력해주세요");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

System.out.println("곱셈 결과는 "+ (firstNum*secondNum) + "입니다.");

System.out.println("곱셈이 종료되었습니다.");

 

}else {

System.out.println("계산이 종료되었습니다.");

};

}

 

if (userChoice==4) {

System.out.println("나눗셈을 할 숫자 2개를 차례대로 입력해주세요.");

int firstNum = Integer.parseInt(sc.nextLine());

int secondNum = Integer.parseInt(sc.nextLine());

System.out.println("나눗셈 결과 몫은"+ (firstNum/secondNum) + "이고 나머지는" + (firstNum%secondNum) + "입니다.");

System.out.println("다시 하시겠습니까?");

System.out.println("(다시하시길 원하시면 Y 혹은 y를 입력해주세요)");

String yes = sc.nextLine();

System.out.println(yes);

if(yes.equals("y")||yes.equals("Y")) {

System.out.println("나눗셈을 할 숫자 2개를 차례대로 입력해주세요");

firstNum = Integer.parseInt(sc.nextLine());

secondNum = Integer.parseInt(sc.nextLine());

System.out.println("나눗셈 결과 몫은"+ (firstNum/secondNum) + "이고 나머지는" + (firstNum%secondNum) + "입니다.");

System.out.println("나눗셈이 종료되었습니다.");

 

}else {

System.out.println("계산이 종료되었습니다.");

};

}

 

}

 

}