1. 상수형 변수의 활용
오늘은 자바 프로그래밍 구조화를 익히는 과정중 하나인 '상수형 변수'의 활용을 통해서,
switch-case문 및 기존 코드의 변경 부분에서 어떻게 활용될 수 있는지를 알아보도록 하겠다.
1) 문제 01
성적 산출 프로그램 구현
- 사용자 메뉴
1. 첫 번째 메뉴 : [성적 입력] 세 사람의 국어, 영어, 수학 점수를 각각 입력 받아 저장
2. 두 번째 메뉴 : [성적 출력] 세 사람의 과목 별 점수와 총합 및 평균을 산출하고 각 과목별 평균을 별도로 산출
3. 세 번째 메뉴 : [프로그램 종료] 성적 산출 프로그램을 종료
우선 위 조건에 부합하는 코드를 switch-case문을 사용하여 아래와 같이 작성하였다.
다소 긴 코드가 작성되었다.
사실, 위 프로그램은 하나의 클래스에 모두 작성된 것이 아니라, 변수만 담고 있는 또 다른 클래스를 참조해와서 사용하는 부분도 포함되어 있다.
하지만, 이번에는 상수형 변수의 활용만 다룰 것이기 때문에 별도로 추가 설명은 하지 않도록 한다.
※ 상수형 변수를 간단히 설명하자면,
일반 변수에 final 키워드를 붙여 값이 변하지 않도록 고정시킨 변수를 말한다.
그렇다면, 이러한 상수형 변수가 보통 어디에서 사용 가능할까?
생각해보자면, 크게 두 가지로 볼 수 있겠다.
첫 번째는 변할 필요가 없거나 코드가 끝날때까지 한 번도 변하지 않는 변수에 대해서 적용이 가능할 것 같다.
두 번째는 변하면 안되는 변수에 대해서도 적용이 가능할 것 같다.
이제 다시 위 코드로 돌아가서 상수형 변수의 쓰임새 두 가지를 떠올리면서 읽어내려가다보면, 쉽게 적용시켜 볼 수 있는 부분이 보이게 되는데, 바로 switch-case문이다.
switch-case문의 경우, 각 case를 구별 할 때 1 ~ n까지의 정수형 숫자를 사용하도록 고정되어 있다.
즉, 변할리가 없는 정수형 숫자를 가지고서 case를 구별한다는 얘기이다.
다시 해석하자면,
변할 수 없는 '고정된 정수형 변수(상수형 변수)'가 있다면, case를 구별하는 '고정된 숫자' 대신 사용해도 문제가되지 않는 다는 점이다.
이를 바탕으로, 위 코드에서 동그라미 표기가 된 각 case 번호를 해당 case의 성격에 맞는 변수명으로 바꿔보도록 하겠다.
차이점이 보이는가?
기존에는 case 1, case 2, case 3...으로 되어 있어, 별도로 구성한 UI를 참고하지 않으면, 각 case 값이 어떤 기능을 실행시키는지 알기 쉽지 않았지만,
상수형 변수를 사용하게 되면서, 위 변환된 코드에서 처럼 점수 입력 / 출력 / 종료 부분으로 변수명을 나누고 해당 기능을 수행하는 case 번호에 대입하여 각 케이가 어떤 기능을 담당하는지 알기 쉽게 바꿀 수 있게 된 것이다.
사실 구조화라는 것을 단순 예제하나로 정리하는 것이 쉽지는 않다.
더 깊이 들어가면, 캡슐화, 객체지향 그리고 상속까지 갈 수 있기 때문이다.
물론, 위 부분들에 대해서도 개별적으로 다뤄 볼 예정!
이 블로그는 개인이 혼자 공부해가며 내용을 정리하는 용도로 활용되고 있습니다.
잘못된 지식이나 이론을 게시하지 않도록 주의하고 있습니다.
'Java > Java 실전 코딩!' 카테고리의 다른 글
5. 자바 객체지향 - 로또 프로그램 구현하기 (0) | 2020.04.07 |
---|---|
3. 반복문 활용 - 짝수의 합 구하기 (0) | 2020.03.04 |
2. 반복문 활용 - 짝수/홀수 구하기 (0) | 2020.03.01 |
1. 변수 선언 (0) | 2020.02.29 |