컴퓨터를 공부하고자 마음먹은지 N일차

[24일차](홍정모의따배c)goto를 피하는법 본문

🖥C

[24일차](홍정모의따배c)goto를 피하는법

졸린새 2020. 10. 1. 23:37
728x90

[24일차](홍정모의따배c)goto를 피하는법

*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시

안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.

정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고

제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소

생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면

'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.

강의에선 goto문의 활용을 가르쳐준다.

그렇지만 제목은 왜 goto를 피하는법일까?

답은 goto를 쓰지말것을 권장하기 때문이다.

  • 교수님코드
#include <stdio.h>

int main()
{
    int size = 15, cost;
    
    if (size < 10)
        goto a;
    goto b;
    
a: cost = 50 * size;
b: cost = 100 * size;
    
    return 0;
}

이렇게 말고도 if나 else로 충분히 구현가능하다

if (size < 10)
        cost = 50 * size;
    cost = 100 * size;

옛날엔 goto를 엄청 많이썼다고 한다.

if (size < 10)
        cost = 50 * size;
    else
    cost = 100 * size;

else를 활용하는것도 가능

read : c = getchar();
    putchar(c);
    if (c == '.') goto quit;
    goto read;
    
quit:

글자를 계속 입력을 받고 '.'을 입력받으면

프로그램이 멈추는 코드

이역시 while이나 for문을 활용해 충분히 더 간단하게 대안가능하다.

while (1)
    {
        c = getchar();
        putchar(c);
        if (c == 'c')
            break;
    }

하지만 나는 goto라는 직관적인 이름때문에 더 애정이가긴하다.

Comments