안녕하세요~ 첫번째 과제였던
계산기 만들기를 하면서 있던 트러블
그리고 그걸 해결해나가는 모습을 보여드리겟습니다.
1-1의 조건이였습니다
여기는 쉬웟죠 그래서 저는
package com.example.calculator;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("양의 첫번째정수를 입력해주세요.");
int inputfir = sc.nextInt();
System.out.println("양의 두번째정수를 입력해주세요.");
int inputsec = sc.nextInt();
이 코드를 이용했습니다.
사실 처음에는 Sca 만쳐도 Scanner가 나오니 이런식으로 했죠.
풀로 치긴 어려웠을거같습니다
sout만쳐도
System.out.println나오는데요.
그러고 int 부분은 여기에 숫자를 입력하게 만드는것입니다.
이제 1-2인 사칙연산 기호를 넣는거였습니다.
이것도 뭐 위와같은데
System.out.println("사칙연산 기호를 입력해주세요.");
char option = sc.next().charAt(0);
우선 system.out.println을 해줘서 입력해주세요를 합니다
그후 char을 사용해줘서 문자 1개만 저장해줍니다 그런데 sc.next()를붙혀주고 charAt(0)을써서
첫번째 문자만 적용되게 하였습니다.
이제 1-3 인데
위의내용을보고 저는 switch를 사용해줫습니다
int result = 0;
switch (option) {
case '+':
result = inputfir + inputsec;
break;
case '-':
result = inputfir - inputsec;
break;
case '*':
result = inputfir * inputsec;
break;
case '/':
if (inputsec != 0) {
result = inputfir / inputsec;
} else {
System.out.println("0으로 나눌수없습니다.");
break;
}
break;
case '%':
if (inputsec != 0) {
result = inputfir % inputsec;
} else {
System.out.println("0으로 나눌수없습니다.");
break;
}
break;
default:
System.out.println("사칙연산으로 입력해주세요");
break;
}
System.out.println(result);
솔직히 1-3이 제일 쉬웟던거같습니다
/,%에보면 0부분에 if문을 써줘서 만약 inputsec !=0 이면
원래대로나오게해주고 아니면
계산을끝내라 라고 해놧습니다.
이제 1-4 입니다.
솔직히 여기가 제일 어려웠습니다.
do while 문을 이용하여 반복문 만드는것까진 쉬웟습니다.
발단:
그런데 이제 이위에까지는 우리가 1+3=4까진 완료한건데 우리가 만들것은 계산기죠
전개:
그럼 어떻게해야됩니까 1+3=4 인데 어? 나는 *10을해주고싶어
해서 4*10을해서 40이 되야하죠
그런데 저는 1*10 해서 10이되버리는 거죠
1-1.위기:
게다가 exit를 치면 이것이 작동을 멈춰야되는데 아무리쳐도 두번째 숫자입력칸으로 넘어가버리는것입니다.
그래서 저는 흠 이걸 어떡해 하면좋지? 어떻게 해결을해볼까 해서
while messege != "exit"를 쓰다가
!= 의 아래부분에 "노란색~ "표시가 뜨게됩니다. 그래서 마우스포인트를 올려보니
equals()가 떠있는걸 확인했죠 아 이것을 적용해보자
하고 while (messege.equals("exit"));
를 이용하여 해봣습니다.
그러나 여전히 exit 로 안되는걸 확인해봣습니다
혹시몰라 "exit"를쳐보니 이반복문이 끝나는걸 확인되었습니다.
하지만 저는 exit를 쳐서 끝내는걸 목표로 하고있었기에
1-2.절정:
흠 뭐가문제지 뭐가이상한것인가 하고 보니
아분명 아까 나는 != 를썻잖아
그럼 messege 앞에 !를 써보자 하고
1-3.결말:
적용을해보았습니다. 그러니 exit 를 치니 적용이 잘되는걸 볼수있었습니다.
2-1 위기
그후 두번째 문제였던 1+3=4 후에 4*10=40 이안되는 이것
아무리봐도 분명 반복은되고있는걸 확인했습니다.
흠 왜그럴까 이럼안되는데 하고 뭐가문제인지 찾아보고있었습니다.
2-2절정
아그래서 실행을해서 계속 계산을 하면서 뭐지 하다가
아잠만 나는 반복만시켜줫지 반복한것을 고정시켜주지 않았잖아
라는 생각을 하게됩니다.
2-3결말:
해서 아래쪽 계산이 된부분 바로아래에 이것을 고정시켜줘볼까?
하고
inputfir= result;를해줘서
restult 값을 첫번째 숫자값으로 보내준후
그첫번째값과 두번째숫자와 사칙연산을
합치게하여 결과값을 도출해보니 잘되는걸확인할수있엇는데.
도중에 뭔가 보충해주면 좋을것들이 보이기시작했습니다.
1/4 하면 0이 뜨는걸 확인하게 된것이죠
그래서 모든 int들을 double 로 적용해주고
만일 뭔가 잘못눌러서 break부분을 가면 실행이 끝나니 되돌아가라라는 뜻으로 필요한부분만
break를 continue로 바꿔줫죠 해서 만들어진코드가
package com.example.calculator;
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("양의 첫번째정수를 입력해주세요.");
double inputfir = sc.nextInt();
String messege = "";
do {
System.out.println("양의 두번째정수를 입력해주세요.");
double inputsec = sc.nextInt();
System.out.println("사칙연산 기호를 입력해주세요.");
char option = sc.next().charAt(0);
double result = 0;
switch (option) {
case '+':
result = inputfir + inputsec;
break;
case '-':
result = inputfir - inputsec;
break;
case '*':
result = inputfir * inputsec;
break;
case '/':
if (inputsec != 0) {
result = inputfir / inputsec;
} else {
System.out.println("0으로 나눌수없습니다.");
continue;
}
break;
case '%':
if (inputsec != 0) {
result = inputfir % inputsec;
} else {
System.out.println("0으로 나눌수없습니다.");
continue;
}
break;
default:
System.out.println("사칙연산으로 입력해주세요");
continue;
}
System.out.println(result);
inputfir = result;
System.out.println("더 계산하시겟습니까?(exit 입력시 종료)");
messege = sc.next();
}while (!messege.equals("exit"));
}
}
위와같게됩니다
해서 적용을 해보니 아주잘되는것을 보실수있으십니다.
봐주셔서 감사합니다
'과제를하면서 트러블슈팅' 카테고리의 다른 글
키오스크 만들기 Lv3 (0) | 2025.01.16 |
---|---|
키오스크 만들기 (3) | 2025.01.15 |
클래스 구현실습 (4) | 2025.01.14 |
계산기 만들기 Lv2-3,4 (0) | 2025.01.10 |
계산기 만들기 Lv2 (0) | 2025.01.09 |