[260611]계산기 만들기 3일차

이상민·2026년 6월 11일

Spring

목록 보기
22/59

목차

수정 및 추가 기능

switch를 통한 추가연산

if(result_cal != 0){
	firstNum = result_cal;
	result_cal = 0;
}
else{
	System.out.print("Type first Number ");
	firstNum = sc.nextDouble();
}

.
.
.


System.out.println("Type exit to exit");
System.out.println("Type 1 to display result");
System.out.println("Type 2 to remove first result");
System.out.println("Type 3 to calculate using previous result");

String additional_cal = sc.next();
switch (additional_cal){
    case("1"):{
		System.out.println("Only results greater than the typed number will be displayed.");
        double d = sc.nextDouble();
        ResultCollection.list.stream()
        	.filter(ResultCollection -> ResultCollection > d)
            .forEach(System.out::println);
        System.out.println(" ");
        break;
	}
	case("2"):{
		System.out.println("removed result: " + ResultCollection.list.get(0));
        ResultCollection.list.remove(0);
        System.out.println("current result list: " + ResultCollection.list);
        break;
	}
	case("3"):{
    	result_cal = ResultCollection.list.getLast();
    	System.out.println("previous result: " + ResultCollection.list.getLast());
        break;
	}
}

case문을 사용하여 연산이 끝난 후 결과값을 이용하는 기능을 추가했다.

  • "1" 입력시: scanner를 통해 값을 입력받고, 그 값보다 큰 값을 출력하는 기능
  • "2" 입력시: 제일 처음에 연산한 결과값을 제거하고, 남은 결과값을 출력하는 기능
  • "3" 입력시: 제일 최근에 연산한 결과값으로 재연산하는 기능
  • "exit" 입력시: 계산기 반복문 종료

트러블 슈팅, 회고

처음 switch문을 구현했을때, 실수로 case 1번의 마지막 부분에 break를 작성하지 않았다.
2번까지 구현하고 테스트를 해보았을때는 이상한점을 느끼지 못하였지만, case 3번까지 구현한 후 결과값을 대조하면서 이상함을 눈 치채게 되었다.
이를 통해, switch-case문에서 break를 작성하지 않으면 다음 case까지 Fall Through가 발생 될 수 있다는 점을 상기시키는 계기가 되었다.

profile
백앤드 개발 브이로그

0개의 댓글