사용자의 정보를 입력받는 기능에서 반복되는 로직을 함수를 빼내고 코드를 좀더 간결하게 구현한 내용을 작성하려 한다.
먼저 기존 코드이다.
코드를 설명하자면 사용자의 정보를 Scanner로 받고 받은 정보를 정규표현식을 이용해 검사하고 나온 결과인 true/false로 if문을 통해 기준에 맞지 않다면 다른 함수로 튕겨지게 했다.
여기서 보완할 부분으로 생각한것은 시용자가 이름입력을 잘 했지만 전화번호를 입력할때 틀려 다시 이름을 작성해야하는 번거로움이 있었고, 이러한 문제를 이름, 전화번호, 자금 등을 각각 입력할때 잘못 입력하면 다시 그 부분을 입력받게 하면 될것 같았다.
위와 같이 코딩하기 위해 반복되는 로직을 분리해서 함수로 만들고, 그 함수를 재귀함수로 만들어 조건이 맞으면 값을 리턴하고 다음 부분으로 넘어가지게 만들었다.
다음으로 수정한 코드 이다.
반복되는 로직을 빼내어 작성한 한수 코드이다.
함수를 이용해 정보데이터를 받는 코드이다.
코드를 설명하면 사용자의 데이터를 입력 받을때 함수를 사용해 매개변수로 입력받은 값과, 정규 표현식, 정보를 입력 받을때마다 바뀔 comment 를 받는다.
우선 사용자의 데이터를 입력 받았을때 정규표현식을 사용해 기준에 맞는지 안맞는지 확인하는데 if문으로 기준에 맞지 않다면 입력받은 commet를 다시 출력해주고 다시 입력해 주라는 멘트와 함께 Scanner로 사용자 데이터를 다시 받는다.
그후 그 데이터들을 재귀함수를 기준을 만족 할때까지 반복 하도록 한다.
만약 기준에 맞게 정보를 입력했다면 그 정보를 return 해주고 다음 정보를 입력하도록 넘어가준다.
위와같은 식으로 사용자의 정보를 입력받으면 사용자가 정보를 입력할때 번거롭지 않게 만들 수 있을것 같다.
마지막으로 여기서 더 보완 할점이 있을 것 같은데 그것은 사용자가 정보를 입력하다가 취소할 수 있는 부분인데 현 코드에선 그러한 부분은 구현되어 있지 않다.
시용자 정보를 입력받는 재귀함수에 취소를 할수 있는 함수를 추가하는 방법과 같이 사용자가 정보를 입력하다가 취소할수 있게 더 보완 해야 할것 같다.
기존 코드를 보면서 보완할점을 스스로 찾고 문제를 해결할 방법을 배운 지식을 활용해 문제를 해결함으로써 코딩에 대한 자신감이 상승한것 같다. 또한 구현했다고, 기능이 돌아간다고 멈추지않고 더 개선할 방법이 있는지 찾아봐야한다는 것을 다시금 깨달았다