오늘의 TIL-간단한 계산기 만들기

강인구·2025년 7월 7일

1주차 과제
간단한 계산기 만들기
숫자를 계산하는 것이기 때문에 입력을 도와줄 변수를 사용할것. input 사용.

//숫자입력
Console.WriteLine("첫번째 숫자를 입력해주세요");
int input1 = int.Parse(Console.ReadLine());

Console.WriteLine("첫번째 숫자를 입력해주세요");
int input2 = int.Parse(Console.ReadLine());
//계산결과
int result = input1 + input2
Console.WriteLine("결과는 " + result + "입니다.);
// 혹은 Console.WriteLine($"결과는 {result}입니다.");

사칙연산 적용해보기
사칙연산을 적용해보려면, 선택지를 통해 연산부호를 선택하게 할것.
이때 사용하면 좋을 문법은 switch case.
스위치 케이스를 사용하기 위해 연산과 관련된 변수 선언 필요.
연산부호는 숫자가 아닌 문자열이니까 문자열 자료형 string 사용.
결과는 0으로 초기화.
입력 오류 여부를 판단하기 위해 불리언 사용. > 숫자가 아닌 문자열을 입력한다던가 아니면 식에서 오류가 발생했을때를 위해 사용.
//사칙연산 선택 적용
Console.WriteLine("원하는 사칙연산을 선택해주세요: +, -, *, /");
string operation = Console.ReadLine();

int result = 0;
bool valid = true;

switch (operation)
{
case "+":
Console.WriteLine("덧셈을 선택하셨습니다.");
result = input1 + input2;
break;
case "-":
Console.WriteLine("뺄셈을 선택하셨습니다.");
result = input1 - input2;
break;
case "":
Console.WriteLine("곱셈을 선택하셨습니다.");
result = input1
input2;
break;
case "/":
Console.WriteLine("나눗셈을 선택하셨습니다.");
result = input1 / input2;
break;
default:
Console.WriteLine("잘못된 연산입니다. +, -, *, / 중 하나를 선택해주세요.");
valid = false;
return;
}
오류 발생
input2 에 0이 입력이 되고 연산자는 나누기를 선택할시 계산결과가 출력되지 않고 콘솔앱 종료. 디버깅에서 나오는 결과는 예외처리 필요 메시지 출력.
그럼 input 1에 0을 넣으면 오류가 발생하는가?
검증: 오류 없음
그럼 다른 연산자는 어떠한지 검증 필요

  • input1 < 0 넣을때 : 오류 없음
    input2 < 0 넣을때 : 오류 없음
  • input1 < 0 넣을때 : 오류 없음
    input2 < 0 넣을때 : 오류 없음
  • input1 < 0 넣을때 : 오류 없음
    input2 < 0 넣을때 : 오류 없음

오류 해결 방법 찾기
/, 나눗셈에서만 오류 발생. 그러면 조건문을 통해 예외처리를 할것. 위치는 스위치 문의 case "/" 아래에 넣으면 될것으로 보임.
조건문에 들어갈 조건은 input2가 0일때를 예외처리하면 되기 때문에
if (input2 == 0)
{

}
으로 구성을 잡고 if문에 삽입할 내용으로는
콘솔앱에 출력될 메시지와, 불리언으로 참인지 거짓인지 판별하고 다시 입력하게 돌려보내는 작업이 필요.
참인지 거짓인지 판별하고 다시 입력하게 돌려보내는 방법은 스위치문 마지막의 default; 아래에 있는 것을 그대로 복사해주면 될거 같음.
if(input2 == 0)
{
Console.WriteLine("0으로 나눌 수 없습니다. 다른 숫자를 입력해주세요.");
valid = false;
return;
}
디버깅을 시도해봄. 예외처리가 안되었다고 오류 메시지가 출력됨. 즉 먼저 나눗셈이 실행이 되고 조건문이 실행되므로, 나눗셈을 조건문 다음에 실행되게 줄을 옮겨주면 될거 같음.
이러면 오류는 발생하지 않으나, 다시 계산으로 하려면 콘솔을 재실행 해주어야 함.
이를 개선하는 방법은 반복문을 사용하면 될것으로 보임.
그럼 어떻게 접근하는게 좋을까 라고 생각을 해보았다.
반복문을 삽입하면 될거 같은데, 어디에 넣는게 좋을것인가... 하고 고민을 하다가 검색을 사용해보았다.
검색을 해본결과, "/"에 반복문을 삽입하라는 결과가 나왔다. 그럼 배웠던 문법중, 반복문을 사용해보겠다.
이 상황은 input2가 0일때 반복문을 실행하는것이니까 반복문 내부가 아닌 외부의 요인으로 반복을 사용하는 것이라고 볼 수 있다. 이 경우에 해당하는 반복문은 while 이므로 이것을 조건문을 대체해서 사용해보도록 하겠다. 기존에 입력한 조건문은 주석처리하였다.
while (input2 == 0)
{
Console.WriteLine("0으로 나눌 수 없습니다. 두번째 숫자를 다시 입력해주세요.");
input2 = int.Parse(Console.ReadLine());
}
이렇게 수정을 했더니 의도한 대로 작동이 되는것을 확인하였다.

추가적으로 할 수 있는 추가사항이 있다면 그게 무엇일까?
계산식을 리셋할수 있는 리셋키 설정 정도가 있을거 같다.

#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL

profile
기획, 개발 지망

0개의 댓글