인프런 커뮤니티 질문&답변

Dae yong Kim님의 프로필 이미지
Dae yong Kim

작성한 질문수

홍정모의 따라하며 배우는 C언어

8.8 메뉴 만들기 예제

해당 강의에서 전 메뉴를 이렇게 만들었습니다.

작성

·

134

0

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{

char input;

int c = 0;

printf("Enter the letter of your choice : \n");

printf("a. avengers\t b. beep\nc. count\t d. quit\n");

while ((input = getchar()))

{

if (input == 'a') {

printf("Avengers assemble!\n");

}

else if (input == 'b') {

printf("b\a\n");

}

else if (input == 'c') {

printf("Enter an integer : \n");

scanf("%d", &c);

for (int i = 1; i <= c; i++)

printf("%d\n", i);

}

else if (input == 'd') {

printf("Program is end\n");

break;

}

else

printf("That's wrong. Another Key input please.\n");

while ((input = getchar()) != '\n') continue;

printf("Enter the letter of your choice : \n");

printf("a. avengers\t b. beep\nc. count\t d. quit\n");

}

return 0;

}

이방법이 작동하는데 전혀 문제가 없고 잘 작동하지만, 강의에서도 그렇구 다른분들두 switch case를 많이 사용하시는 모습을 보고 전 전혀 switch case를 생각하지 않았거든요 ㅠㅠ 모자란점이 느껴져 아쉽습니다 ㅠㅠ

또한.. 함수사용도 하지않았네요 ㅠㅠ 코드가 아무래도 지저분해보이긴 한거같습니다..

integer가 아닌 경우도 만들어봐야겠습니다. 

이러한 아쉬운점이 있는데 제 실력이 모자라기 때문이겠죠? ㅠㅠ

답변 1

1

안녕하세요!

잘 하신 것 같은데요..?

switch 가 if-else 와 똑같은 것입니다. 둘 중 뭐가 더 낫다고 말할 수가 없어요..! 

저는 개인적으로 초보일땐 코드 예쁘게 짜고 분리하려고 노력하기보다는 그냥 main 함수 하나 안에다가 다 쓰더라도 동작 순서와 논리를 생각해보면서 코드 짜보는게 중요하다고 생각합니다. 

이제 8 단원 들으시는데 넘 의기소침해 하지 마셔요 ㅠㅠ...!! 화이팅입니다!! 😊

Dae yong Kim님의 프로필 이미지
Dae yong Kim
질문자

감사합니다! 함수사용을 안했고 한번에 강의의 함수이해를 못하는거같아 의기소침했거든요 ㅠㅠ 좋은말씀 감사합니다! 더 노력하겠습니다

Dae yong Kim님의 프로필 이미지
Dae yong Kim

작성한 질문수

질문하기