리자

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

· 2021-07-20 (화) 17:34:09 · 2333 · 14

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번 혼용해서 사용합니다.
첫번째 처럼 마지막에 리턴하는 방식을 주로 사용합니다.
2021-07-20 (화) 19:14:07
전 1번 방식에 if문을 줄이도록 exception을 던지는 방식으로 합니다.
2021-07-20 (화) 22:07:00
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 이 아닙니다.";
}
2021-07-21 (수) 06:48:12
222222
2번을 선호합니다. 1번으로 하면 if 문이 어디까지인지 봐야해서...
if 문안에 한줄이라도.. { } 묶어줍니다.. 그게 보기 좋아서;;
저는 1번!
2021-08-01 (일) 05:14:17
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 을 쓰는게 좋습니다.
2021-12-06 (월) 17:42:18
설레여라 얍!
간단한 문에는 1번이 났고, 내용이 길어지면 2번이 나아 보이지 않나요??
댓글을 작성하시려면 로그인이 필요합니다.

설문게시판

376건
+
제목 글쓴이 날짜 조회
21-11-15 조회 2,826
21-10-12 조회 1,855
21-09-06 조회 2,115
21-09-03 조회 1,931
21-08-31 조회 1,930
21-08-25 조회 2,298
21-07-21 조회 2,171
21-07-20 조회 2,334
21-06-21 조회 2,610
20-11-12 조회 1,965
20-11-02 조회 3,649
20-10-04 조회 1,981
20-10-02 조회 1,545
20-09-23 조회 2,547
20-09-19 조회 2,136
20-09-16 조회 1,856
20-09-06 조회 1,973
20-09-01 조회 1,844
20-08-18 조회 2,952
20-08-02 조회 2,066
20-07-30 조회 2,938
20-07-28 조회 1,943
20-07-19 조회 1,911
20-07-17 조회 2,505
20-07-05 조회 2,007
20-07-02 조회 2,368
20-07-02 조회 1,851
20-06-29 조회 2,288
20-05-30 조회 2,620
20-05-20 조회 4,426