0

我正在尝试编写一个简单的文本菜单,代码编译得很好,但是当它进入 while 循环时执行会冻结,并且循环内没有执行任何代码。代码很简单,看不出问题。

void menu()
{
    int option = 1;
    while (option!=3);
    {
        printf("Select an option\n\n");
        printf("1. Input data\n");
        printf("2. View table of data\n");
        printf("3. Exit program\n");
        scanf("%d", &option);


        switch (option)
        {
            case 1:
            printf("Inputting data\n");
            break;

            case 2:
            printf("Viewing table\n");
            break;

            default:
            printf("Invalid choice, please try again\n");
            break;
        }
    }
} 
4

2 回答 2

10

你有一个杂散的分号

while (option!=3);
                ^^^ 

这将永远循环。
试试这个

while (option!=3)
                ^^^ 
于 2013-08-15T11:21:55.170 回答
1
while(option!=3);

这只是一个无限循环,更正代码以删除分号,并要求用户输入值 3 以退出,否则它将不会退出 while 循环,因为永远不会输入 3。

于 2013-08-15T15:14:14.490 回答