단순한 계산기를 처음 만들어봤다. 처음 만든 코드라 부족한 게 많고, 내가 찾지 못한 오류도.. 있을 것 같다.
무엇보다 단순한 코드를 계속 반복해서 쓰다보니 가독성이 떨어진다.
객체지향언어니 무슨 클래스 나눠서 막 어떻게 만들면 제대로 계산기가 만들어질 것 같긴한데...
초보 개발자(자바공부 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("계산이 종료되었습니다.");
};
}
}
}
'공부 > 코드모음' 카테고리의 다른 글
[배열] 전체 합과 평균 구하기 (0) | 2023.06.03 |
---|---|
배열 최대값/ 최소값 구하기 (0) | 2023.06.02 |
주민번호 입력 - 남/여 맞추기 (0) | 2023.05.31 |
[5月]단순한 구구단 출력기 만들기 (0) | 2023.05.21 |
5월 프로젝트 계획 (0) | 2023.05.21 |