#include <stdio.h>
void load_menu(void);
int main(void)
{
load_menu();
return 0;
}
void load_menu(void)
{
int choice;
int loopagain;
do
{
printf("Menu \n\n");
printf("Please enter your choice: \n");
printf("1. \n");
printf("2.\n");
printf("3.\n");
printf("4. Exit\n");
if (scanf("%d",&choice)==1)
{
switch(choice)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4: printf("Quitting program!\n");
break;
default: printf("Invalid choice! Please try again\n");
printf("\n");
break;
}
}
else
{
printf("Characters are invalid, please enter a number: \n ");
if (scanf("%d",&loopagain)==1)
load_menu();
}
}while((choice !=4));
}
爲什麼當我輸入一個字符時,這仍然給我一個無限循環?這是一個菜單(案例陳述仍需要填寫),但我正在照顧由if語句輸入的字符,但它似乎仍然不起作用。謝謝給我一個無限循環的代碼
遞歸調用看起來是非常不必要的.. – StoryTeller
即使我懷疑你的意思也是使用遞歸,或者理解爲什麼這是不好的(在這種情況下) –
回滾「它已解決」。更改。如果問題解決了,請選擇一個答案或添加解決問題的答案。 –