테스트 사이트 - 개발 중인 베타 버전입니다

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

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번이 나아 보이지 않나요??

게시글 목록

번호 제목
5960
5945
5917
5902
5861
5807
5761
5744
5733
5718
5636
5602
5561
5545
5496
5450
5391
5329
5293
5278
5228
5163
5124
5119
5097
5083
5062
5028
4985
4967