개발일기/TIL(Since24.04.19)

Java - TIL(24.04.30 화)

w.llama 2024. 4. 30. 22:26

오늘 한 일

  • 내일배움 캠프 강의 수강
    • 개인과제 (계산기 만들기)
  • 프로그래머스 문풀
    • 짝수의 합(java)
    • 최솟값구하기(SQL)
  • 방송대 디지털논리 수강

힘들었던 문제

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class App {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Queue<Integer> resultQueue = new LinkedList<Integer>();
        int index = 0;
        int result = 0;

        while (true) {
            System.out.println("첫번째 숫자를 입력하세요: ");
            int fristNum = sc.nextInt();

            System.out.println("두번째 숫자를 입력하세요: ");
            int secondNum = sc.nextInt();

            System.out.println("사칙연산 기호를 입력하세요: ");

            String ch = sc.next();

            if (ch == "/" && secondNum == 0) {
                System.out.println("나눗셈 연산에서 부모(두번째 정수)에 0이 입력될 수 없습니다.");
            } else {
                switch (ch) {
                    case "+":
                        result = fristNum + secondNum;
                        break;
                    case "-":
                        result = fristNum - secondNum;
                        break;
                    case "/":
                        result = fristNum / secondNum;
                        break;
                    case "*":
                        result = fristNum * secondNum;
                        break;
                }
                System.out.println("결과: " + result);
            }
            resultQueue.add(result);
            sc.nextLine();
            System.out.println("가장 먼저 저장된 연산 결과를 삭제하시겠습니까? (remove 입력시 삭제)");
            String remove = sc.nextLine();
            if (remove.equals("remove")) {
                resultQueue.poll();
            }
            System.out.println("가장 먼저 연산결과를 조회하시겠습니까? (inquiry입력 시 조회)");
            String inquiry = sc.nextLine();
            if(inquiry.equals("inquiry")) {
                System.out.println("저장된 결과: ");
                for(int i = 0; i < resultQueue.size(); i++){
                    int temp = resultQueue.poll();
                    System.out.println(temp + " ");
                    resultQueue.add(temp);
                }
                System.out.println();
            }
            System.out.println("더 계산하시겠습니까? (exit 입력 시 종료)");
            String answer = sc.next();
            if (answer.equals("exit")) {
                break;
            }
            index++;
            sc.close();
        }
    }
}

Solution

while 문 속 break;지점과 컬랙션 Queue를 계산기를 만들었는데

내일배움 캠프에서 계산기를 완성하기 위해 순서별 지시사항에따라 만들었다

처음 컬랙션 Queue를 이용하려다보니 점점 복잡한 구조를 가지게 되었다가 같은 행동의 반복인걸 깨닫고 하나의 틀을 갖고 만들다보니 조금 해결이된듯 싶다.

의문 점 

개인과제를 진행하다 보니 지시사항에 Calculator라는 클래스를 만들어 기능을 구현해야하는데 이해가 되지않아서 내일 한번더 관련 강의를 들어봐야할듯 싶다 

내일 할 일

클래스 강의 수강

개인과제 마무리

프로그래머스 문풀

hyperskill 문풀

방송대 수강 

'개발일기 > TIL(Since24.04.19)' 카테고리의 다른 글

Java - TIL(24.05.02 목)  (0) 2024.05.02
Java - TIL(24.05.01 수)  (0) 2024.05.01
Java - TIL(24.04.29 월)  (0) 2024.04.29
Java - TIL(24.04.26 금)  (1) 2024.04.26
Java - TIL(24.04.25 목)  (0) 2024.04.25