리자

이런 함수 작성 시 어떤 방법을 선호하시나요?

1) 

function checkNumber(no) 
{

  msg = "";
  if (!no) {

    msg = "번호가 없습니다.";

  } else {

    if (no == 1)  msg = "번호가 1 입니다";

    else msg = "번호가 1 이 아닙니다.";

  }

  return msg;

}

 

 

2) 

function checkNumber(no) 
{

  if (!no)

    return "번호가 없습니다.";

 

  msg = "";
  if (no == 1)  msg = "번호가 1 입니다";

  else msg = "번호가 1 이 아닙니다.";

  return msg;

}

 

 

 

1과 같이 msg 를 저장하고 함수의 마지막에서 한번에 반환

 

2와 같이 중간 중간 return 으로 값을 반환하고 if 문을 줄임

 

어떤 방식을 선호하시는지 골라 주세요.

 

기타를 선택하셨다면 어떤 방법을 사용하시는지 댓글로 남겨주세요.

|

댓글 14개

아시는분 도움주세요
상황에 따라 1번 2번 혼용해서 사용합니다.
첫번째 처럼 마지막에 리턴하는 방식을 주로 사용합니다.
전 1번 방식에 if문을 줄이도록 exception을 던지는 방식으로 합니다.
1번. 저라면...

<script>
function checkNumber(no) {
if (!no) msg = "번호가 없습니다.";
else if (no == 1) msg = "번호가 1 입니다";
else msg = "번호가 1 이 아닙니다.";
}
checkNumber(1);
document.write(msg);
</script>
가독성이 1번이 낫지 않나요. 조금 올드해보이기는 하지만...
웬지 2번처럼 하다 실수한 경험이 좀 있다보니...
2 그냥 봐도 간결 그리고 저는 2조차 아래로 변형해서 씀
function checkNumber(no)
{
if (!no) return "번호가 없습니다.";
if (no == 1) return "번호가 1 입니다";

return "번호가 1 이 아닙니다.";
}
2번을 선호합니다. 1번으로 하면 if 문이 어디까지인지 봐야해서...
if 문안에 한줄이라도.. { } 묶어줍니다.. 그게 보기 좋아서;;
1번입니다. 이유는 제가 보기 편하기 때문입니다. ㅋㅋㅋㅋ
논리적 흐름으로 코드가 만들어지는게 좋은것 같네요.
(return, break 를 적절히 쓰게 되면, if depth 나 loop depth 를 줄일수 있습니다. 줄일수록 알아보기 좋은 코드)

그래서 2번입니다.

ps) 한줄짜리도 중괄호는 필수
한가지 더... 가끔 msg를 무조건 리턴해야 하는 경우가 있는데, 이건 try {} catch() 구문으로 처리하는게 좋습니다. throw new \Exception() 과 같이 쓰면, depth 를 줄이는 효과가 있습니다.

function checkNumber(no)
try {
if(!no) {
new \Exception("번호가 없습니다.");
}

} catch(Exception $e) {
$msg = $e->getMessage();
}

return $msg;
}


validation 처리할땐 Exception 을 쓰는게 좋습니다.
설레여라 얍!
간단한 문에는 1번이 났고, 내용이 길어지면 2번이 나아 보이지 않나요??
댓글을 작성하시려면 로그인이 필요합니다.

설문게시판

+
제목 글쓴이 날짜 조회
3년 전 조회 1,281
3년 전 조회 919
4년 전 조회 1,063
4년 전 조회 1,027
4년 전 조회 1,054
4년 전 조회 1,472
4년 전 조회 1,786
4년 전 조회 2,339
4년 전 조회 1,406
4년 전 조회 1,634
4년 전 조회 1,441
4년 전 조회 1,417
4년 전 조회 1,750
4년 전 조회 1,708
4년 전 조회 1,856
4년 전 조회 2,121
5년 전 조회 1,496
5년 전 조회 3,108
5년 전 조회 1,540
5년 전 조회 1,099
5년 전 조회 1,963
5년 전 조회 1,641
5년 전 조회 1,394
5년 전 조회 1,542
5년 전 조회 1,415
5년 전 조회 2,513
5년 전 조회 1,560
5년 전 조회 2,488
5년 전 조회 1,489
5년 전 조회 1,486