[[TableOfContents]] = 출ì„ì²´í¬ = ||ì´ë¦„||출ì„|| ||권ì˜ê¸°|| o || ||ìž„ë„훈|| o || ||김지운|| o || = 수업 ë‚´ìš© = == ê³„íš == * 지난 시간 ë‚´ìš© 복습 * if, if-else, switch * whlie, do-while, for == ë‚´ìš© == === ì œì–´ë¬¸ì˜ ì¢…ë¥˜ === ë¬¸ìž¥ë“¤ì˜ ì‹¤í–‰ 순서 특별히 ì§€ì • 안하면 첫 문장부터 시작하여 í•œ ë²ˆì— í•œ 문장씩 순차ì 으로 실행ëœë‹¤. ì œì–´ë¬¸ì„ ì‚¬ìš©í•˜ë©´ ì´ ë¬¸ìž¥ì´ ì‹¤í–‰ ë˜ëŠ” 순서를 ë‚´ 맘대로 ì œì–´í• ìˆ˜ 있다. 종류 조건문 : if문, if-else문, switch 문 반복문 : while문, for문, do-while문 분기문 : goto문, return문, break문, continue문 함수호출 === 조건문 if === 조건문 - ì¡°ê±´ì‹ì˜ ê²°ê³¼(부울)ì— ë”°ë¼ ì¡°ê±´ì„ ìˆ˜í–‰í• ê²ƒì¸ì§€ 아닌지를 íŒë‹¨. if(a < min) min = a; or if(a < min){ min = a; printf("%d", min); } if ì•ˆì— ë“¤ì–´ê°€ëŠ” ì¡°ê±´ì— ëŒ€í•´ì„œ ì°¸ì´ ë‚˜ì˜¤ë©´ ìˆ˜í–‰í•˜ê³ , ê±°ì§“ì´ ë‚˜ì˜¤ë©´ 수행하지 않는다. === 조건문 if - else문 === if - else문 ifë¬¸ì— else ì ˆì„ ì¶”ê°€í•œ if-elseë¬¸ì„ ì´ìš©í•´ì„œ 여러 가지 ì¡°ê±´ì„ ì²˜ë¦¬í• ìˆ˜ 있다. 기본 í˜•ì‹ if (ì¡°ê±´ì‹) 문장 1; else 문장 2; ì¡°ê±´ì‹ì´ ì°¸ì´ë©´ 문장 1ì„ ì‹¤í–‰í•˜ê³ , 거짓ì´ë©´ 문장 2를 실행한다. e.g. if(a < b) min = a; else min = b; or if(a < b){ min = a; }else { min = b;} === if - else if === 다중 ì„ íƒì„ 위한 if문 if(ì¡°ê±´ì‹ 1) 문장 1; else if(ì¡°ê±´ì‹ 2) 문장 2; ... else if(ì¡°ê±´ì‹ n) 문장 n; 예) if( score >= 90) else if(score >= 80) else if(score >= 70) else if(score >= 60) else === nested if === if문 ë‚´ì— ifë¬¸ì„ ë˜ ì‚¬ìš©í• ìˆ˜ë„ ìžˆë‹¤. ì¤‘ì²©ëœ if문ì´ë¼ê³ 한다.(nested if) if( ){ if( ){ } else { } } === dangling else problem === ì¤‘ì²©ëœ if문과 ê´€ë ¨í•´ì„œ í•œ 가지 주ì˜í•´ì•¼ í• ì ì€ ì¤‘ì²©ëœ if문 다ìŒì— 오는 elseì ˆì´ ì–´ëŠ if문과 ì§ì´ ë˜ëŠ”ê°€ 하는 것ì´ë‹¤, if(num1 < num2) if(num1 < num3) min = num1; else min = num3; else ì ˆì€ í•ìƒ ê·¸ ì „ì— ì˜¤ëŠ” 가장 가까운 ìž‘ì´ ì—†ëŠ” if문과 ì§ì´ ëœë‹¤. === switch === switch문 - 다중 ì„ íƒ ë°©ë²•ì„ ì œê³µí•œë‹¤.(ì •ìˆ˜ ê°’ì— ë”°ë¼ ì—¬ëŸ¬ 경로 중ì—ì„œ í•œ 경로를 ì„ íƒí• 수 있다.) 문ìží˜•ì„ í¬í•¨í•˜ì—¬ ì •ìˆ˜í˜• 수ì‹ë§Œ ì‚¬ìš©í• ìˆ˜ 있다. switch(수ì‹){ case ìƒìˆ˜ 1: 문장들 1 case ìƒìˆ˜ 2: 문장들 2 ... case ìƒìˆ˜ n: 문장들 n default : 문장들 n+1 } (1) 수ì‹ì˜ ê°’ì„ ê³„ì‚°í•œë‹¤. (2) 수ì‹ì˜ ê°’ì´ ê° caseì˜ ìƒìˆ˜ ê°’ê³¼ ê°™ì€ì§€ 차례대로 검사한다. (3) ì¼ì¹˜ëœ caseê°’ì´ ìžˆìœ¼ë©´ ê·¸ case ì ˆì˜ ë¬¸ìž¥ë“¤ì„ ì‹¤í–‰í•œë‹¤. (3.1) case ì ˆì˜ ë§ˆì§€ë§‰ ë¬¸ìž¥ì´ break ì´ë©´ switch ë¬¸ì„ ë¹ ì ¸ë‚˜ì˜¨ë‹¤. (3.2) ê·¸ë ‡ì§€ ì•Šì€ ê²½ìš°ì—는 ë‹¤ìŒ case ì ˆì˜ ë¬¸ìž¥ë“¤ì„ ì‹¤í–‰í•œë‹¤. (4) ì¼ì¹˜ëœ case ê°’ì´ ì—†ìœ¼ë©´ default ì ˆì˜ ë¬¸ìž¥ë“¤ì„ ì‹¤í–‰í•œë‹¤. === 반복문(루프) while === while문 while(ì¡°ê±´ì‹) 문장 1; ì¡°ê±´ì‹ì´ ì°¸ì´ë©´ 본체를 다시 실행, 거짓ì´ë©´ whileë¬¸ì„ ì¢…ë£Œ while(count <= 100){ total = total + count; count = count + 2; } === do while === do while문 do{ 문장 1; ... 문장 n; }while(ì¡°ê±´ì‹); ì¡°ê±´ì´ ë£¨í”„ì˜ ëì— ìœ„ì¹˜í•˜ë¯€ë¡œ, 루프 본체를 ë¨¼ì € ì‹¤í–‰í•˜ê³ , ì¡°ê±´ì„ ê²€ì‚¬í•˜ì—¬ ê·¸ ê°’ì´ ì°¸ì¸ ë™ì•ˆ 반복한다. do - whileì€ ì ì–´ë„ í•œ 번 실행ëœë‹¤. do{ }while() === for === for문 - ë£¨í”„ì˜ ë°˜ë³µ 횟루를 ì•Œê³ ìžˆì„ ë•Œ ì í•©í•œ 반복문ì´ë‹¤. for(ìˆ˜ì‹ 1; ìˆ˜ì‹ 2; ìˆ˜ì‹ 3) 문장 ìˆ˜ì‹ 1 - 초기화를 위한 수ì‹/ 루프를 시작하기 ì „ì— ì‹¤í–‰í•œë‹¤. ìˆ˜ì‹ 2 - 부울 ì¡°ê±´ì‹/ 루프 본체를 실행하기 ì „ì— ì¡°ê±´ì´ ì°¸ì´ë©´ 본체를 실행, 거짓ì´ë©´ 루프를 벗어난다. ìˆ˜ì‹ 3 - ì¡°ê±´ì‹ì— ì‚¬ìš©ëœ ë³€ìˆ˜ë¥¼ ì¦ê°€ì‹œí‚¤ê±°ë‚˜ ê°ì†Œì‹œí‚¤ê¸° 위한 ì‹ìœ¼ë¡œ ë£¨í”„ì˜ ê° ë°˜ë³µí›„ 실행 * 초기화 ë¶€ë¶„ì€ ì²˜ìŒì— í•œ 번만 ì‹¤í–‰í•˜ê³ , ìˆ˜ì‹ 2,3 ì€ ë£¨í”„ì˜ ë°˜ë³µ ì „í›„ì— ì‹¤í–‰ëœë‹¤, === nested loop === 오늘 실습한 별로 사ê°í˜• ì°ê¸°. {{{ #include<stdio.h> int main(){ int n, i, j; scanf("%d", &n); for(i = 0; i<n; i++){ for(j = 0; j<n; j++){ printf("*"); } printf("\n"); } return 0; } }}} == ìˆ™ì œ == ìˆ™ì œë¥¼ 했으면 ebellus@gmail.com으로 소스를 보내주세요~ === 1번 === {{{ ìˆ«ìž nì„ ìž…ë ¥ë°›ê³ , ìž…ë ¥ ë°›ì€ n ê°’ì— ëŒ€ì‘하는 삼ê°í˜•ì„ ì¶œë ¥í•˜ì‹œì˜¤. 5 //n * ** *** **** ***** // 대ì‘하는 삼ê°í˜• 3 * ** *** }}} === 2번 === {{{ ìˆ«ìž nì„ ìž…ë ¥ë°›ê³ , ìž…ë ¥ ë°›ì€ n ê°’ì— ëŒ€ì‘하는 사ê°í˜•ì„ ì¶œë ¥í•˜ì‹œì˜¤. 5 // n 00000* 0000** 000*** 00**** 0***** // ì¶œë ¥ 3 000* 00** 0*** }}} === 3번 === {{{ ìˆ«ìž nì„ ìž…ë ¥ë°›ê³ , ìž…ë ¥ ë°›ì€ n ê°’ì— ëŒ€ì‘하는 삼ê°í˜•ì„ ì¶œë ¥í•˜ì‹œì˜¤ 5 //n * ** *** **** ***** //ì¶œë ¥ 3 * ** *** 힌트 : ê³µë°±ë„ ë¬¸ìžìž…니다. (스페ì´ìŠ¤) }}} === 4번 === {{{ ìˆ«ìž key와 nì„ ìž…ë ¥ë°›ê³ , ìž…ë ¥ ë°›ì€ ë‘ ê°’ì— ëŒ€ì‘하는 ë„í˜•ì„ ì¶œë ¥í•˜ì‹œì˜¤. keyê°’ì´ 1ì´ë©´ * ** *** 모양 keyê°’ì´ 2ì´ë©´ 000* 00** 0*** 모양 keyê°’ì´ 3ì´ë©´ * ** *** ëª¨ì–‘ì„ ì¶œë ¥í•©ë‹ˆë‹¤. 2 // key 3 // n @@@* @@** @*** //ì¶œë ¥ 1 4 * ** *** **** }}} == 질문 == == ê²°ê³¼ == = 후기 작성 ìš”ë ¹ = 후기 작성 ìš”ë ¹ : 후기는 F4(ThreeFs + Future Action Plan)ì— ë§žê²Œ 작성해주세요. ê´€ë ¨ 페ì´ì§€ : ThreeFs, ThreeFs(노스모í¬), FiveFs(노스모í¬) ë§í¬ë¥¼ 눌러보기조차 ê·€ì°®ì€ ë‹¹ì‹ ì„ ìœ„í•œ 간단한 설명 Facts, Feelings, Findings, Future Action Plan. 즉, 사실, ëŠë‚€ ì , ê¹¨ë‹¬ì€ ì , ì•žìœ¼ë¡œì˜ ê³„íš. 예를 들어 ì§€ë‚œì£¼ì— ëˆê°€ìŠ¤ë¥¼ ë¨¹ì€ ê²ƒì— ëŒ€í•´ 후기를 쓴다면 : "ì§€ë‚œì£¼ì— ê°•ë‚¨ì— ê°€ì„œ í•˜ë‚˜ì— 5만ì›í•˜ëŠ” ëˆê°€ìŠ¤ë¥¼ 먹었다.(사실) 기대를 잔뜩 í–ˆëŠ”ë° ë³„ë¡œ ë§›ì´ ì—†ì—ˆë‹¤.(ëŠë‚Œ) ê°•ë‚¨ì€ ë•…ê°’ì´ ë¹„ì‹¸ì„œ 값만 ë³´ê³ ì—„ì² ë§›ìžˆì„ê±°ë¼ ê¸°ëŒ€í•˜ë©´ 안ëœë‹¤ëŠ” ê²ƒì„ ì•Œì•˜ë‹¤.(깨달ì€ì ) 다ìŒì—는 미리 ì¸í„°ë„·ì—ì„œ í‰ì„ ì°¾ì•„ë³´ê³ ë³„ì ì´ ë†’ì€ ëˆê°€ìŠ¤ì§‘ì„ ì°¾ì•„ì„œ ê°€ë´ì•¼ê² 다.(ì•žìœ¼ë¡œì˜ ê³„íš)" = 후기 = == 권ì˜ê¸° == ì˜¤ëŠ˜ì€ ì œì–´ë¬¸ì— ëŒ€í•´ì„œ 배워봤습니다. 지난 ì‹œê°„ì— ì œê°€ 새싹들ì—게 ìž˜ëª»ëœ ì§€ì‹ì„ ì•Œë ¤ì¤¬ëŠ”ë° ì˜ì •ì´í˜•ì´ ê·¸ ê²ƒì„ ì•Œë ¤ì£¼ì–´ì„œ 불ìƒì‚¬ë¥¼ 피했습니다.(ì˜ì •ì´í˜• ê³ ë§ˆì›Œìš”) ì´ë²ˆ ì‹œê°„ì€ ì‹¤ìŠµë„ ë§Žì´ ë§Žì´ ì‹œí‚¤ë ¤ê³ í–ˆëŠ”ë° ì‹œê°„ ë°°ë¶„ì´ ìž˜ 안ë˜ì„œ 그런지 ì‹¤ìŠµë„ ë§Žì´ í•˜ì§€ ëª»í•˜ê³ , ìˆ˜ì—…ë„ ëŠ¦ê²Œ ë나서 후기를 ì—¬ìœ ìžˆê²Œ 작성하지 못했네요. 5분 ì „ì— ëë‚´ì„œ ì—¬ìœ ìžˆê²Œ 후기를 ìž‘ì„±í•˜ë ¤ëŠ” ì‹œë„ê°€ 실패했습니다. (...) ê·¸ë¦¬ê³ forë¬¸ì„ ì„¤ëª…í•˜ë©´ì„œ, 설명 ì˜ˆì œë¡œëŠ” êµ¬êµ¬ë‹¨ì„ ë§í•´ ë†“ê³ , ì‹¤ìŠµì€ *ë¡œ 사ê°í˜•ì„ ì°ìœ¼ë¼ê³ í–ˆëŠ”ë° ì´ ì‹œë„는 실패한 것 같습니다. ì‹¤ìŠµë„ ì„¤ëª… ì˜ˆì œì™€ ì—°ê´€ëœ ê²ƒìœ¼ë¡œ 해야 ì´í•´ê°€ ë” ìž˜ë ê±°ë¼ëŠ” ê²ƒì„ ê¹¨ë‹¬ì•˜ë„¤ìš”. 다ìŒì—는 설명 ì˜ˆì œì™€ 실습 ì˜ˆì œë¥¼ ë”ìš± 충실히 준비해와야 í• ê²ƒ 같습니다. ê·¸ë¦¬ê³ ì‹œê°„ ì•ˆë°°ë„ ìž˜ í•´ì•¼ê² ë„¤ìš”. == ìž„ë„훈 == 구구단 만들기 재미있다. == 김지운 == for 문 í—·ê°ˆë ¤. ----------------------------------- [새싹êµì‹¤/2013]