목차
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문을 사용하여 연산이 끝난 후 결과값을 이용하는 기능을 추가했다.
scanner를 통해 값을 입력받고, 그 값보다 큰 값을 출력하는 기능처음 switch문을 구현했을때, 실수로 case 1번의 마지막 부분에 break를 작성하지 않았다.
2번까지 구현하고 테스트를 해보았을때는 이상한점을 느끼지 못하였지만, case 3번까지 구현한 후 결과값을 대조하면서 이상함을 눈 치채게 되었다.
이를 통해, switch-case문에서 break를 작성하지 않으면 다음 case까지 Fall Through가 발생 될 수 있다는 점을 상기시키는 계기가 되었다.