✊ ν•„μ˜€μ˜ κ°œλ°œμΌμ§€
Back to Posts
2018λ…„ 8μ›” 2일

πŸ““ 읽기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œλ‹€. || part2. 루프와 논리λ₯Ό λ‹¨μˆœν™”ν•˜κΈ°

πŸ““ 읽기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œλ‹€. || part2. 루프와 논리λ₯Ό λ‹¨μˆœν™”ν•˜κΈ°

**[읽기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œλ‹€.]**λ₯Ό 보고 λ©”λͺ¨ν•  뢀뢄을 μ •λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

λͺ©μ°¨

  1. 읽기 μ‰½κ²Œ νλ¦„μ œμ–΄ λ§Œλ“€κΈ° β‡’
  2. κ±°λŒ€ν•œ ν‘œν˜„μ„ 잘게 μͺΌκ°œκΈ° β‡’
  3. λ³€μˆ˜μ™€ 가독성 β‡’

μ„œλ‘  쒋은 μ½”λ“œλŠ” 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€λ₯Ό λΉ λ₯΄κ²Œ 전달해쀀닀. μ‚¬μš©ν•˜κΈ°μ—λ„ 즐겁고, μžμ‹ μ—κ²Œλ„ 더 쒋은 μ½”λ“œλ₯Ό λ§Œλ“€μ–΄μ•Ό ν•˜κ² λ‹€λŠ” μš•κ΅¬λ₯Ό λΆˆλŸ¬μΌμœΌν‚€κΈ°λ„ ν•œλ‹€.


PART 2 ) 루프와 논리λ₯Ό λ‹¨μˆœν™”ν•˜κΈ°

νλ¦„μ œμ–΄ control flow 논리식 logical expression λ³€μˆ˜ 등에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

μ½”λ“œκ°€ μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒμ—κ²Œ 정신적 뢀담을 더 많이 λΆ€κ³Όν•  수둝, λ²„κ·ΈλŠ” μ’€μ²˜λŸΌ λˆˆμ— 보이지 μ•Šκ³ , μ½”λ“œ μˆ˜μ • μž‘μ—…μ€ 더 μ–΄λ €μ›Œμ§€κ³ , κ²°κ΅­ 그런 μ½”λ“œλ‘œ μž‘μ—…ν•˜λŠ” 일이 즐겁지 λͺ»ν•˜κ²Œ λœλ‹€.

7. 읽기 μ‰½κ²Œ νλ¦„μ œμ–΄ λ§Œλ“€κΈ° λΆ„κΈ°λ¬Έκ³Ό 점프문은 μ–΄λ €μš΄ λŒ€μƒμ΄λ©°, μ½”λ“œλ₯Ό λ³΅μž‘ν•˜κ²Œ λ§Œλ“œλŠ” 원인이닀.

7-1. μ‘°κ±΄λ¬Έμ—μ„œ 인수의 μˆœμ„œ

A > B

cf_ μš”λ‹€ν‘œκΈ°λ²• (μ˜›λ‚ μ— μ“°λ˜.. NULL == obj )

7-2. if/else λΈ”λ‘μ˜ μˆœμ„œ

7-3. (μ‚Όν•­ μ—°μ‚°μžλ‘œ μ•Œλ €μ§„) ?:λ₯Ό μ΄μš©ν•˜λŠ” 쑰건문 ν‘œν˜„

7-4. do/while 루프λ₯Ό ν”Όν•˜λΌ

7-5. ν•¨μˆ˜ μ€‘κ°„μ—μ„œ λ°˜ν™˜ν•˜κΈ°

7-7. 쀑첩을 μ΅œμ†Œν™”ν•˜κΈ°

루프와 쑰건문을 λΉ„λ‘―ν•œ κ·Έμ™Έ 뢄기문을 읽기 μ‰½κ²Œ λ§Œλ“œλŠ” 방법을 μ‚΄νŽ΄λ³Έ 것이닀. ν•˜μ§€λ§Œ μžμ‹ μ˜ ν”„λ‘œκ·Έλž¨μ— μ‘΄μž¬ν•˜λŠ” β€˜νλ¦„β€™μ„ μƒμœ„μˆ˜μ€€μ—μ„œ 쑰망해볼 ν•„μš”κ°€ μžˆλ‹€. ν”„λ‘œκ·Έλž¨μ˜ 전체 μ‹€ν–‰ 경둜λ₯Ό μ‰½κ²Œ λ”°λΌκ°ˆ 수 있게 λ§Œλ“œλŠ” 게 ꢁ극의 λͺ©ν‘œλ‹€.


8. κ±°λŒ€ν•œ ν‘œν˜„μ„ 잘게 μͺΌκ°œκΈ°

μ½”λ“œμ˜ ν‘œν˜„μ΄ 컀지면 컀질수둝 μ΄ν•΄ν•˜κΈ° 더 μ—¬λ ΅λ‹€. β‡’ μ˜ˆμ‹œ: λŒ€μ™•μ˜€μ§•μ–΄ μ‹λ„μ£Όλ³€μ˜ λ„λ„›λ‡Œ

  1. μ„€λͺ… λ³€μˆ˜
  1. μš”μ•½ λ³€μˆ˜
  1. λ“œλͺ¨λ₯΄κ°„μ˜ 법칙 μ‚¬μš©ν•˜κΈ° De Morgan’s Laws
  1. μ‡ΌνŠΈ μ„œν‚· 논리 였용 말기
  1. 예; λ³΅μž‘ν•œ 논리와 μ”¨λ¦„ν•˜κΈ°
bool Range:;OverlapsWith(Range other){ // 'begin'dlsk 'end'κ°€ 'other'에 μ†ν•˜λŠ”μ§€κ²€μ‚¬ν•œλ‹€. return (begin >= other.begin && begin < other.end) || (end > other.begin && end <= other.end) || (begin <= other.begin && end >= other.end); }
bool Range:;OverlapsWith(Range other){ if (other.end <= begin) return false; // μš°λ¦¬κ°€ μ‹œμž‘ν•˜κΈ° 전에 λλ‚œλ‹€. if (other.begin >= begin) return false; // μš°λ¦¬κ°€ λλ‚œ 후에 μ‹œμž‘ν•œλ‹€. return true; // λ§ˆμ§€λ§‰ κ°€λŠ₯μ„±λ§Œ λ‚¨μ•˜λ‹€. 즉 κ²ΉμΉœλ‹€. }
  1. κ±°λŒ€ν•œ ꡬ문 λ‚˜λˆ„κΈ° λ°˜λ³΅λ˜λŠ” 뢀뢄을 β‡’ μš”μ•½λ³€μˆ˜λ‘œ μΆ”μΆœν•  λ•Œ (DRY : Don’t Repeat Yourself)
  1. ν‘œν˜„μ„ λ‹¨μˆœν™”ν•˜λŠ” λ‹€λ₯Έ 창의적인 방법듀

9. λ³€μˆ˜μ™€ 가독성 λ³€μˆ˜λ₯Ό μ—‰ν„°λ¦¬λ‘œ μ‚¬μš©ν•˜λ©΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ°κ°€ μ–Όλ§ˆλ‚˜ μ–΄λ €μ›Œμ§€λŠ”μ§€ μ‚΄νŽ΄λ³Έλ‹€. -

λ³€μˆ˜μ˜ μˆ˜κ°€ λ§Žμ„μˆ˜λ‘ κΈ°μ–΅ν•˜κ³  닀루기 더 μ–΄λ €μ›Œμ§„λ‹€. - λ³€μˆ˜μ˜ λ²”μœ„κ°€ λ„“μ–΄μ§ˆμˆ˜λ‘ κΈ°μ–΅ν•˜κ³  λ‹€λ£¨λŠ” μ‹œκ°„μ΄ 더 κΈΈμ–΄μ§„λ‹€. - λ³€μˆ˜ 값이 자주 λ°”λ€”μˆ˜λ‘ ν˜„μž¬ 값을 κΈ°μ–΅ν•˜κ³  닀루기가 더 μ–΄λ €μ›Œμ§„λ‹€.

9-1. λ³€μˆ˜ μ œκ±°ν•˜κΈ°

var remove_one = function (array, value_to_remove) { var index_to_remove = null; for (var i = 0; i < array.length; i += 1) { if (array[i] === value_to_remove) { index_to_remove = i; break; } } if (index_to_remove !== null) { array.splice(index_to_remove, 1); } }; /** μœ„μ˜ λ°©λ²•λ³΄λ‹€λŠ” μ•„λž˜λ°©λ²• **/ var remove_one = function (array, value_to_remove) { var index_to_remove = null; for (var i = 0; i < array.length; i += 1) { if (array[i] === value_to_remove) { array.splice(i, 1); return; } } };

9-2. 흐름 μ œμ–΄ λ³€μˆ˜ μ œκ±°ν•˜κΈ°

9-3. λ³€μˆ˜μ˜ λ²”μœ„λ₯Ό μ’ν˜€λΌ

submitted = false; var submit_form = function(form_name){ if(submitted){ return; // 폼을 두 번 μ œμΆœν•˜μ§€ 말라. } ... submitted = true; }

submit_form()만이 μ „μ—­λ³€μˆ˜ submittedλ₯Ό μ‚¬μš©ν•˜λŠ” μœ μΌν•œ ν•¨μˆ˜μ²˜λŸΌ λ³΄μ΄μ§€λ§Œ, ν™•μ‹€νžˆ μ•Œ 수 μ—†λ‹€. β‡’ λ‹€λ₯Έ μžλ°”μŠ€ν¬λ¦½νŠΈ νŒŒμΌμ—μ„œ μ΄μ™€λŠ” λ‹€λ₯Έ λͺ©μ μœΌλ‘œ submittedλΌλŠ” 이름이 뢙은 μ „μ—­ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•  지도 λͺ¨λ₯΄λŠ” 일이닀! β‡’ submitted λ³€μˆ˜λ₯Ό ν΄λ‘œμ €Β  내뢀에 μ§‘μ–΄ λ„£μ–΄μ„œ 이런 문제λ₯Ό ν•΄κ²°ν•œλ‹€. js var submit_form = (function(){ var submitted = false; return function(form_name){ if(submitted){ return; // 폼을 두 번 μ œμΆœν•˜μ§€ 말라. } ... submitted = true; } }()); β‡’ ν”„λΌμ΄λΉ—ν•œ λ²”μœ„λ₯Ό λ§Œλ“œλŠ” 효과λ₯Ό κ°–λŠ”λ‹€.

PreviousπŸ““ 읽기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œλ‹€. || part3. μ½”λ“œ μž¬μž‘μ„±ν•˜κΈ°
NextπŸ““ 읽기 쒋은 μ½”λ“œκ°€ 쒋은 μ½”λ“œλ‹€. || part1. ν‘œλ©΄μ  μˆ˜μ€€μ—μ„œμ˜ κ°œμ„ 

Related

Β© 2025 Felix