Freecodecamp: 문제의 버그 : μ—¬λŸ¬ 쑰건뢀 (3 ν•­) μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.

에 λ§Œλ“  2020λ…„ 05μ›” 22일  Β·  16μ½”λ©˜νŠΈ  Β·  좜처: freeCodeCamp/freeCodeCamp


λ¬Έμ œμ™€ μž¬ν˜„ 방법을 μ„€λͺ…ν•˜μ‹­μ‹œμ˜€.
버그-μ•„λž˜ μ½”λ“œμ— λŒ€ν•œ ν…ŒμŠ€νŠΈκ°€ 였λ₯˜μ™€ ν•¨κ»˜ μ‹€νŒ¨ν•©λ‹ˆλ‹€. checkSign은 μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.

function checkSign(num) {
  return (num!==0) ?(num>0) ? "positive" 
    : "negative" 
    : "zero";
}


console.log(checkSign(10));
console.log(checkSign(-10));
console.log(checkSign(0));

슀크린 μƒ· -1 :
image

슀크린 μƒ·-2 :
image

그것을 μž¬ν˜„ν•˜λŠ” 방법.
였λ₯˜ λŒ€μ‹  : "checkSign은 μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€."
였λ₯˜λŠ” λ‹€μŒκ³Ό κ°™μ•„μ•Όν•©λ‹ˆλ‹€. μ‚Όν•­ μ—°μ‚°μžμ˜ 참인 경우 λ¬Έ λΆ€λΆ„μ—μ„œ μ—¬λŸ¬ μ‚Όν•­ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λͺ¨λ²” 사둀가 μ•„λ‹™λ‹ˆλ‹€.

(였λ₯˜ λ©”μ‹œμ§€μ˜ λͺ…ν™•μ„± 증가)

λ¬Έμ œκ°€μžˆλŠ” νŽ˜μ΄μ§€μ— 링크 μΆ”κ°€ :
도전 링크;
포럼의 λ‚΄ κ²Œμ‹œλ¬Ό 보고 버그 링크 :

first timers only help wanted learn

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

"가독성을 μœ„ν•΄ μ˜ˆμ— ν‘œμ‹œλœλŒ€λ‘œ 각 쑰건이 λ³„λ„μ˜ 행에 μžˆλ„λ‘ μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μžμ˜ ν˜•μ‹μ„ μ§€μ •ν•˜λŠ” 것이 κ°€μž₯ μ’‹μŠ΅λ‹ˆλ‹€."

λΉ„μŠ·ν•œ λ©”λͺ¨λ₯Ό μΆ”κ°€ ν•  κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  16 λŒ“κΈ€

λ‚˜λŠ” μ•½κ°„μ˜ 쑰정이 μ˜λ―Έκ°€ μžˆλ‹€λŠ” 것에 λ™μ˜ν•©λ‹ˆλ‹€. a) 닀쀑 삼항을 μ‚¬μš©ν•˜μ§€ μ•Šκ±°λ‚˜ b) 삼항이 μ˜ˆμƒ ν˜•μ‹μ΄ μ•„λ‹Œ 경우 ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν•œλ‹€λŠ” 사싀을 νŒŒμ•…ν•  수 μžˆλ‹€λ©΄ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 도전이 μš”κ΅¬ν•˜λŠ” 것이라고 μƒκ°ν•˜μ§€ μ•ŠλŠ”λ‹€ : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

이것은 λ¬Έμ„œμ˜ μ½”λ“œμž…λ‹ˆλ‹€.

function example(…) {
    return condition1 ? value1
         : condition2 ? value2
         : condition3 ? value3
         : value4;
}

당신이 λ§Œλ“  것은 :

function checkSign(num) {
  if (num!==0) {
    if (num>0) {
      return "positive";
    } else {
      return "negative";
    }
  } else {
    return "zero";
  }
}

λ™μ˜ν•©λ‹ˆλ‹€. μž‘μ—…μ„ _ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€ _. κ·ΈλŸ¬λ‚˜ μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.

function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

λ”°λΌμ„œ ν˜•μ‹μ— λŒ€ν•΄ 더 ꡬ체적으둜 도전 지침을 λ³€κ²½ν•΄μ•Όν•©λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 도전이 μš”κ΅¬ν•˜λŠ” 것이라고 μƒκ°ν•˜μ§€ μ•ŠλŠ”λ‹€ : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

이것은 λ¬Έμ„œμ˜ μ½”λ“œμž…λ‹ˆλ‹€.

function example(…) {
    return condition1 ? value1
         : condition2 ? value2
         : condition3 ? value3
         : value4;
}

당신이 λ§Œλ“  것은 :

function checkSign(num) {
  if (num!==0) {
    if (num>0) {
      return "positive";
    } else {
      return "negative";
    }
  } else {
    return "zero";
  }
}

λ™μ˜ν•©λ‹ˆλ‹€. μž‘μ—…μ„ _ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€ _. κ·ΈλŸ¬λ‚˜ μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.

function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

λ”°λΌμ„œ ν˜•μ‹μ— λŒ€ν•΄ 더 ꡬ체적으둜 도전 지침을 λ³€κ²½ν•΄μ•Όν•©λ‹ˆλ‹€.

μ°Έκ³  :이 μ €μž₯μ†ŒλŠ” Free Code Camp μž…λ‹ˆλ‹€. λ‹Ήμ‹ μ˜ 닡변에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

@FelixBoscoJ , ν•˜ν•˜. 예, 잘 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 닀쀑 쑰건뢀 μ‚Όν•­ μ—°μ‚°μžμ˜ 예λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ Mozilla λ¬Έμ„œμ— λ§ν¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μš”μ μ€ μ—¬μ „νžˆ β€‹β€‹μ „μ μœΌλ‘œ μœ νš¨ν•©λ‹ˆλ‹€.

@FelixBoscoJ , ν•˜ν•˜. 예, 잘 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 닀쀑 쑰건뢀 μ‚Όν•­ μ—°μ‚°μžμ˜ 예λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ Mozilla λ¬Έμ„œμ— λ§ν¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μš”μ μ€ μ—¬μ „νžˆ β€‹β€‹μ „μ μœΌλ‘œ μœ νš¨ν•©λ‹ˆλ‹€.

```js
function checkSign (num) {
return (num! == 0)? (num> 0)? "μ–‘"
: "음수"
: "제둜";
}

console.log (checkSign (10));
console.log (checkSign (-10));
console.log (checkSign (0));

````
이 μ±Œλ¦°μ§€ μ—μ„œ μœ„μ˜ μ½”λ“œλ₯Ό μ‹œλ„ν•΄λ³΄μ‹­μ‹œμ˜€. μ±Œλ¦°μ§€λ₯Ό ν†΅κ³Όν•˜λŠ” 데 ν•„μš”ν•œ 사항을 ν™•μΈν•˜μ‹­μ‹œμ˜€.

@FelixBoscoJ , μ €λŠ”μ΄ λ¬Έμ œκ°€

function checkSign(num) {
  if (num!==0) {
    if (num>0) {
      return "positive";
    } else {
      return "negative";
    }
  } else {
    return "zero";
  }
}

λ™μ˜ν•©λ‹ˆλ‹€. μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.

function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

μ†”λ£¨μ…˜μ— else if 둜직이 μ—†μŠ΅λ‹ˆλ‹€.

@FelixBoscoJ , μ €λŠ”μ΄ λ¬Έμ œκ°€

function checkSign(num) {
  if (num!==0) {
    if (num>0) {
      return "positive";
    } else {
      return "negative";
    }
  } else {
    return "zero";
  }
}

λ™μ˜ν•©λ‹ˆλ‹€. μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.

function findGreaterOrEqual(a, b) {
  if (a === b) {
    return "a and b are equal";
  }
  else if (a > b) {
    return "a is greater";
  }
  else {
    return "b is greater";
  }
}

μ†”λ£¨μ…˜μ— else if 둜직이 μ—†μŠ΅λ‹ˆλ‹€.

λ„μ „μ—μ„œ μŠΉλ¦¬ν•˜κΈ°μœ„ν•œ 쑰건은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

checkSign ν•¨μˆ˜μ—μ„œ μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ μˆ«μžκ°€ μ–‘μˆ˜, 음수 λ˜λŠ” 0인지 ν™•μΈν•©λ‹ˆλ‹€.

μ—¬λŸ¬ 쑰건뢀 ( μ‚Όν•­ ) μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.

μ•„λ§ˆλ„ 였λ₯˜ λ©”μ‹œμ§€λŠ” "... ꢌμž₯ ν˜•μ‹μ˜ μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μž"μ—¬μ•Όν•©λ‹ˆλ‹€.

그리고 μ•„λ§ˆλ„ "가독성을 μœ„ν•΄ 각 쑰건이 λ³„λ„μ˜ 쀄에 ν‘œμ‹œλ˜λ„λ‘ μ—¬λŸ¬ 쑰건 μ—°μ‚°μžλ₯Ό ν˜•μ‹ν™”ν•˜λŠ” 것이 κ°€μž₯ μ’‹μŠ΅λ‹ˆλ‹€."λΌλŠ” 쀄에 λ©”λͺ¨λ₯Ό μΆ”κ°€ ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

"가독성을 μœ„ν•΄ μ˜ˆμ— ν‘œμ‹œλœλŒ€λ‘œ 각 쑰건이 λ³„λ„μ˜ 행에 μžˆλ„λ‘ μ—¬λŸ¬ 쑰건뢀 μ—°μ‚°μžμ˜ ν˜•μ‹μ„ μ§€μ •ν•˜λŠ” 것이 κ°€μž₯ μ’‹μŠ΅λ‹ˆλ‹€."

λΉ„μŠ·ν•œ λ©”λͺ¨λ₯Ό μΆ”κ°€ ν•  κ²ƒμž…λ‹ˆλ‹€.

닫은? μ„€λͺ…에 λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ 병합 λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

@ Sky020 μ‚Όν•­ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ if / else if / else λ‘œμ§μ„ κ΅¬ν˜„ν•  수 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μž‘μ—…μ€ μ™„λ£Œ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

λ™μ˜ν•©λ‹ˆλ‹€. μž‘μ—…μ„ μ™„λ£Œν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.

 function findGreaterOrEqual(a, b) {
   if (a === b) {
     return "a and b are equal";
   }
   else if (a > b) {
     return "a is greater";
   }
   else {
     return "b is greater";
   }
 }

μ•„λ‹ˆμš”, μ˜ˆμƒλ˜λŠ” κ΅¬ν˜„ λ…Όλ¦¬λŠ” λ‹€μŒκ³Ό 같은 ν˜•μ‹μž…λ‹ˆλ‹€.
```js
function findGreaterOrEqual (a, b) {

if (a === b) {
return "a와 b are equal";
}
else {
if (num> 0) {
return "positive";
} else {
return "negative";
}
}
}

```

ν—‰ν—‰

μ˜ˆμƒ μ†”λ£¨μ…˜ (6 개 쀑 ν•˜λ‚˜, μ΅œμ’… λ‹΅λ³€κ³Ό 맀우 μœ μ‚¬) :

function checkSign(num) {
  return (num > 0) ? "positive" 
    : (num < 0) ? "negative"
    : "zero";
}

If-else 버전

function checkSign(num) {
  if (num > 0) {
    return "positive";
 } else if (num < 0) {
    return "negative";
 } else {
    return "zero";
 } 
}

μ‚Όν•­ λ˜λŠ” 닀쀑 삼항은 항상 if-else둜 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œμ™€ μ„€λͺ…이 μ •ν™•ν•©λ‹ˆλ‹€. κ°€λ…μ„±μ„μœ„ν•œ λͺ¨λ²” 사둀 μ„œμ‹μ„ κ°•μ‘°ν•˜κΈ° μœ„ν•΄ λͺ…ν™•ν•œ μ„€λͺ…을 ν•œλ‘ 개 μΆ”κ°€ν•˜λ €κ³ ν•©λ‹ˆλ‹€.

μ‹ κ²½ 쓰지 마.

μ„€λͺ…을 λͺ…ν™•νžˆν•˜λŠ” 것이 μ΅œμ„ μ˜ ν•΄κ²°μ±… 인 것 κ°™μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ PR이 병합 될 λ•ŒκΉŒμ§€ μ—΄μ–΄ λ‘κ² μŠ΅λ‹ˆλ‹€.

κ°€λŠ₯ν•˜λ‹€λ©΄μ΄ 뢀뢄에 λ›°μ–΄ λ“€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ €λŠ” μ²˜μŒμ΄μ§€λ§Œ λ°°μš°κ²Œλ˜μ–΄ 정말 κΈ°μ©λ‹ˆλ‹€!

그것을 μœ„ν•΄ κ°€μ‹­μ‹œμ˜€, @jasnkwcz. 이것은 처음 μ‚¬μš©ν•˜λŠ” μ‚¬λžŒμ—κ²Œ 쒋은 λ¬Έμ œμž…λ‹ˆλ‹€.

κΈ°μ—¬ κ°€μ΄λ“œλ₯Ό μ‚΄νŽ΄ λ³΄λŠ” 것이 μ’‹μœΌλ©°, λ§Œμ•½ λ§‰νžˆλ©΄ κΈ°μ—¬μžμ˜ μ±„νŒ…λ°© 에 λ¬Όμ–΄λ³΄μ„Έμš”.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰