일단 작성하신 프로그램은...
Main이 길지 않으니 그대로 두셔도 되겠지만, 코드 가독성을 높이겠다면 루프를 기준으로 함수화 시키는것도 고려해볼만 합니다.
그리고 goto문 있습니다.
잘 사용하지 않는다고 알려져 있지만 실제로 필요한 경우가 있습니다.
단순히 반복루프를 위해서는 사용하지 않지만 여러게의 블록을 한번에 빠져나와서 다음을 실행할때에는 사용하기도 합니다. 물론 그 이후 실행할 코드가 없으면 return 등으로 해당 함수를 바로 종료하는 경우가 대부분이긴 합니다만...
[goto문]
// Hello라는 곳으로 실행도중 점프함니다.
Hello:
...
...
goto Hello;
허브한그루 님이 쓰신 글 :
: #include <stdio.h>
: /*
: in: 받은금액
: max: 합계
: moive: 영화
: num: 인원
: a: do문의 확인용
: */
: void main( )
: {
: int in, movie, num, max, a; //변수 설정
: printf ("영화 관람료 계산 프로그램 입니다.\n"); //시작을 알립니다.
: do
: {
: printf ("관람하실 영화를 선택하여 주십시요.\n");
: printf (" 1 = 일반 (6000원) 2 = 할증 (6500원) 3 = 할인 (5500원)\n");
: scanf ("%d",&movie); //영화 선택
: if (movie == 1)
: {
: printf ("일반입니다.\n");
: movie=6000;
: }
: else if (movie == 2)
: {
: printf ("할증입니다.\n");
: movie=6500;
: }
: else
: {
: printf ("할인입니다.\n");
: movie=5500;
: }
: printf ("맞습니까? \n맞으면 1 수정은 2\n");
: scanf ("%d",&a);
: }while (a==2); // 영화 설정을 확인합니다.
: do
: {
: printf ("인원을 입력해주십시요.\n");
: scanf ("%d",&num);
: printf ("%d 명입니다.\n맞으면 1 수정은 2\n",num);
: scanf ("%d", &a);
: }while (a==2); // 인원 설정을 확인합니다.
: max = movie * num;
: do
: {
: printf ("총 금액은 %d원 입니다.\n받은 금액을 입력하세요.\n",max);
: scanf ("%d",&in);
: printf ("받은 금액은 %d 입니다.\n계산은 1 수정은 2\n",in);
: scanf ("%d",&a);
: }while (a==2);
: if (in < max)
: printf ("%d더 받으세요.\n",max-in);
: else if (in == max)
: printf ("\n");
: else
: printf ("%d을 거슬러주세요.\n",in-max);
: }
: 이걸 줄이고 싶습니다.
: 이제 배운지 얼마 되지는 않았구요....
: C에도 GOTO 문이 있나요??
: 그리고 press any key to continue
: 이걸 쓰고 싶은데요... 어떻게 추가하나요?
: 그냥 확 종료되어 버리던데....
|