게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금)숫자를 입력받아 증가하는 함수에 대한 질문
게시물ID : programmer_10428짧은주소 복사하기
작성자 : ltearl
추천 : 0
조회수 : 557회
댓글수 : 4개
등록시간 : 2015/05/25 20:25:51
옵션
  • 본인삭제금지

제목 대로 숫자를 입력받아서 +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#이기때문에 포인터는 사용하지 않았습니다.

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호