제목 대로 숫자를 입력받아서 +1 증가시켜 내뱉어야 하는 함수를 짜야합니다.
1->2, 2->3 .....998->999
여기까진 정상적입니다. 그런데.
999->A01, A01->A02.... A99 -> B01....
어떤 형태인지 보이시죠?
이에 대한 논리를 소스로 짜야되서 우선적으로 생각 된게 이런 형태입니다.
if 입력값 <= 1 and 입력값 >= 998 //입력값이 1~998인경우
RETURN 입력값=입력값+1
else if 입력값 == 999 //입력값이 999인경우
RETURN 입력값 = A01
else //나머지 경우 A01,A02...B01,B02....
strFnum 선언 //입력되는 3자리숫자중 앞에 첫번째 자리 문자 ex) A01에서 A에 해당
strBnum 선언 //입력되는 3자리숫자중 두 번째, 세 번째 자리 문자 ex) A01에서 01에 해당
strFnum=입력값.left(0)
strBum=입력값.right(1)
if strBnum == 99 //A99,B99,C99.....
strFnum= Asc(strFnum+1) // 아스키코드 값을 증가시켜 가르키는 알파벳 값을 올려줍니다.
strBnum=01
else //A01,A02....A98, B01,B02....B98....
strBnum=strBum + 1 //01->02, 02->03...
end if
RETURN 입력값 = strFnum & strBum
end if
뭐 이런 형태로 구현을 하였습니다.(수도코드 형태라 문법이 짬뽕된 느낌일겁니다).
즉 값을 입력받아서 1~998이냐 999이냐 그외의 것이냐 판별하여 값을 +1증가하여 되돌려 주는 형태로 구현하였는데요.
이상태로도 사용하는데는 지장이 없지만 뭔가 이중 if문을 사용한 형태다 보니 깔끔하지가 않은거 같습니다.
소스를 짜달라는게 아니라 좀더 좋은 논리가 없을 까 싶어서 이렇게 질문글 올립니다.
참고로 언어는 VB와 c#이기때문에 포인터는 사용하지 않았습니다.