goto문은 무슨 용도인지 대충 눈에 보이지 않을까 싶습니다.

저도 처음에 이 goto를 보고 으음.... 어디로 보내기 위해 사용을 하지 않았을까?? 하고 생각을 했듯이 말이죠

그러면 바로 코드를 보면서 강좌를 진행하도록 하겠습니다.

#include <stdio.h>

int main(void) {

int num;

printf("좋아하는 자연수는???\n");

scanf_s("%d", &num);


if(num<50) {

printf("어어?? 50보다 작은 수를 좋아하시는 것인가요??\n");

goto FTs;

}

else if (num == 50) {

printf("욜!! 50을 좋아하시다니\n");

goto FT;

}

else {

printf("흐음 50이 넘는 수를 좋아하시는 군요!\n");

goto FTb;

}

FTs:

printf("저는 당신과는 다른 것으로 보입니다.\n다시 입력을 해 주세요\n");

scanf_s("%d", &num);

goto b_end;

FT:

printf("저랑 당신은 잘 맞는 것 같아요!!\n");

goto g_end;

FTb:

printf("저는 당신과는 다른 것으로 보입니다.\n제 앞에서 사라져 주세요\n");

goto b_end;

g_end:

printf("해설자 : 숫자를 잘 선택한 주인공은 행복하게 살았답니다.\n");

printf(" GOOD END ");

return 0;

b_end:

return 0;

}

그냥 간단하게 해 보았습니다. 뭔가 시뮬레이터 느낌이 강하게 받았지만....

비로서 이 코드를 사용하는 방법에 관하여 어떠한 느낌인지 아실 것입니다.

하지만, 저는 설명을 하도록 하겠습니다.

[    ] 이것을 이름 그러니까 위치 지정 이름으로 하도록 하겠습니다.

goto [    ];

위에 코드로 [    ]라는 곳으로 이동을 시킵니다.

[    ]:

그러면 위에 코드가 있는 곳이 이동이 될 위치 입니다.

여기서 주의를 해야 할 점은 ; 세미콜론이 아니라는 점 입니다.

세미콜론으로 하게 된다면 코드는 오류를 일으키게 됩니다.

그러니 세미콜론으로 하시지 마시기를 바랍니다.

아 물론 보내는 코드는 세미콜론이지만 받는 코드는 아니라는 소리입니다.


그러면 저는 여기서 코드 강좌를 마치도록 하겠습니다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

제가 요즘 동아리로 살짝 바쁘기도 합니다. 그래서 늦어지고 있는데 이해를 부탁드립니다. 오늘 5편 올리겠습니다. 하하....

저번시간에 else if를 배웠는데요 그러면 그 else if와 비슷한 역할을 하고 더 많은 사람들이 사용하는 switch를 배우는 시간으로 하도록 하겠습니다.

먼저 흐름같은 것을 알려드리도록 하겠습니다.

switch(num) {

case 1:

printf("1이네요\n");

break;

case 2:

printf("2네요\n");

break;

default:

printf("모르겠어요\n");

}

return 0;

이렇게 이루어 지는데요 저번시간에 배운것을 기억하신다면(완벽하게 자신의 것으로 만드셨다면)제가 else if를 적어드리는 것으로 이해를 하시리라고 생각을 합니다.

하지만 저는 else if를 적어드리고 따로 설명도 해드리도록 하겠습니다.

if ( num==1) {

printf("1이네요\n");

}

else if (num==2) {

printf("2네요\n");

}

else {

printf("모르겠어요\n");

}

return 0;

else if로 바꾸게 되면 이렇게 변하게 됩니다.

그리고 설명을 하게 된다면 입력함수에 의해 결정된 임의의 값을 여러 케이스에 비교를 해서 가장 잘 맞는 케이스를 실행하는 것이 else if와 switch의 특징입니다.

여러가지의 경우를 전부 생각해야하는 경우 이러한 것들을 자주사용하게 됩니다.

저는 여기서 마치도록 하려고 생각을 하려고 했는데 여기서 의문점이 생기셨으리라고 생각을 합니다.

else if에는 break가 없는데 왜 switch에만 break가 존재하는 것인지에 관하여 말이죠.

그 이유는 switch가 break가 없는 경우 다음 케이스도 같이 실행해 버립니다. break가 나올 때까지 말이죠

그러한 이유가 있기 때문에 우리는 switch에 break를 넣기로 합시다.

그리고 또 케이스는 꼭 숫자가 아니어도 됩니다.

int main(void) {

char dead;

printf("z : 좀비, s : 스켈레톤\n");

printf("입력 : ");

scanf_s("%c", &dead);

switch(dead) {

case 'z':

case 'Z':

printf("좀비!! 우에에에에");

break;

case 's':

case 'S':

printf("뼈다귀!! 덜그럭");

break;

default:

printf("에에 그게 무엇이죠???");

break;

}

return 0;

}

이런식으로 문자도 충분히 가능하다는 점을 알아 두시기를 바랍니다.

그리고 여러분들은 제가 굳이 문자 변수에 관하여 설명이 없어도 이해가 가시리라고 믿습니다.

(항상 비슷한 위치에서 선언하고 비슷한 위치의 입력함수에서 변수에 저장을 하였기 때문이죠)

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

안녕하세요??? 이번에도 저는 살짝 밀리기는 했지만 그래도 한편을 올리려고 합니다.

일단 여태까지 아마 else를 쓰셨으리라고 생각을 합니다. 예제를 만들고 연습을 하실때

근데 제가 한가지 설명을 건너뛴 것이 있는 것 같더군요 제가 else if를 설명하지 않았던 것 같습니다.

그런데 이번 switch문은 else if문과 거의 비슷하다고 볼 수 있습니다.

그러니 저는 이번 switch문은 2파트로 나누어서 else if문을 먼저 설명하고 그 다음에 switch문을 설명 하도록 하겠습니다.

먼저 else if문을 설명하자면

기존 if (   ) {   } else {   }문에서 조금 더 발전을 했다고 볼 수 있습니다.

무슨 소리냐??

간단하게 흐름을 보여주도록 하겠습니다.

if (   ) {


}

else if (   ) {


}

이런 식으로 되어 있을 것 입니다.

제가 else 인 경우 if 조건에 들어가는 경우와 반대의 그러니 '아닌 경우'만 실행문이 실행이 된다고 제가 설명을 했습니다.

그런데 아니지만 새로이 조건을 달아야 하는 경우가 분명히 존재를 하겠지요? 그런 경우 else if를 사용하는 것을 추천합니다. 제가 위 코드에 else if 옆에 공백(조건)란을 만들어 둔것을 보셨을 것입니다.

그러니 이런 느낌으로 사용하라는 것입니다.

만약 X가 1이라면 "~"을 아니면 X가 3이라면 "~"을 전부 아니라면 "~"을

이런 느낌이 됩니다.

코드로 다시 설명하겠습니다.

if ( n = 1 ) {

printf("1이네요\n");

}

else if ( n = 2 ) {

pritnf("2이네요\n");

}

else if ( n = 3 ) {

printf("3이네요\n");

}

else {

printf("에.... 모르겠어요");

}

return 0;

당연히 n의 값에 따라 나뉘는 것이 아마 보이지 않을까 하고 생각 하고 있습니다.

하지만, else if 보다 switch를 더 많이 쓴다고 하고 그리고 else if 보다 더 많은 상황에서 자유롭게 사용이 가능하리라고 믿고 있습니다. 이번 강좌는 여기서 마치도록 하겠습니다.

그럼 저는 이만 바이러스 없에러 갑니다.

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,