break를 써도 while문을 빠져나오지 않아요
2gether
질문 제목 : break를 써도 while문을 빠져나오지 않아요질문 내용 :
while(select!=4)
{
system(cls);
select=0;
printf(┏━━━━━━━━━━━━━━━━━┓\n);
printf(┃ 대여 관리 ┃\n);
printf(┣━━━━━━━━━━━━━━━━━┫\n);
printf(┃ 1.도서 대여 ┃\n);
printf(┃ 2.도서 반납 ┃\n);
printf(┃ 3.대여중인 도서 확인 ┃\n);
printf(┃ 4.뒤로 가기 ┃\n);
printf(┗━━━━━━━━━━━━━━━━━┛\n);
printf(번호를 입력하시오 : );
scanf(%d,&select);
fflush(stdin);
switch(select)
{
case 1 : books_rent(member_link,books_link); break;
case 2 : books_return(member_link,books_link); break;
case 3 : have_book_check(member_link,books_link); break;
case 4 : break;
default : printf(잘못 입력하였습니다.\n); a=getch(); break;
}
}
요즘 c언어 연습할겸 코드를 짜고 있는데요 이런식으로 while문 써서 하면 저 switch에서 break가 있는곳을 골라도 계속 반복해요... 제 비쥬얼스튜디오가 이상한건가요... 아니면 저 코드에 이상이 있는건가요?
-
찬누리
하지만 while(select!=4) 가 있는걸로 봐서 무한루프가 돌지는 않을것 같습니다.
-
바나나맛캔디
switch 문을 빠져나갈 때도 break 문을 사용합니다.
그래서 while 문을 빠져나가는 것이 아니라 switch 문을 빠져나가게 되는 것이죠.
해결 방법은 goto 문 사용, bool 변수 사용으로두 가지가 있습니다.
첫번째 방법
(전략)
case 3 : have_book_check(member_link,books_link); break;
case 4 : goto label1;// label1로 갑니다.
default : printf( -
유1혹
실행해보니 4번을 눌렀을때 while문을 빠져나가네요. 이 부분 말고 다른 코드에서 이상이 있는게 아닌지 다시한번 확인해보시기 바랍니다.