王鹿其 发表于 2023-10-12 13:41:16

我这个代码为什么只能先输入A才可以正常运行

#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
    char ch1 = 'A';
    char ch2 = 'D';
    char ch3 = 'S';
    char ch4 = 'Q';
    char ch5 ;
   
    cout << "Menu: A(dd) D(elete) S(ort) Q(uit), Select one: ";
    cin >> ch5;
   
    switch(ch5)
    {
            case 'A' : cout<<"数据已经增加"<<endl;
        }
       
        cout << "Menu: A(dd) D(elete) S(ort) Q(uit), Select one: ";
    cin >> ch5;
       
        switch(ch5)
    {
            case 'D' : cout<<"数据已经删除"<<endl;
        }
       
        cout << "Menu: A(dd) D(elete) S(ort) Q(uit), Select one: ";
    cin >> ch5;
          
        switch(ch5)
    {
            case 'S' : cout<<"数据已经排序"<<endl;
    }
   
    cout << "Menu: A(dd) D(elete) S(ort) Q(uit), Select one: ";
    cin >> ch5;
       
        switch(ch5)
    {
                case 'Q' : cout<<endl;break;
        }
    return 0;
}

isdkz 发表于 2023-10-12 13:41:34

这是因为在程序中,只有在输入A、D、S、Q这四个字符中的一个时,才会执行相应的操作。如果输入其他字符,程序将会继续等待输入,造成程序看起来“卡住了”。

为了解决这个问题,可以在switch语句后添加一个default分支,用于处理输入了其他字符的情况。例如:

switch(ch5)
{
    case 'A' : cout<<"数据已经增加"<<endl; break;
    case 'D' : cout<<"数据已经删除"<<endl; break;
    case 'S' : cout<<"数据已经排序"<<endl; break;
    case 'Q' : cout<<endl; break;
    default: cout<<"无效的选择"<<endl; break;
}

这样,当输入了除A、D、S、Q以外的字符时,程序就会输出“无效的选择”,而不会继续等待输入。
页: [1]
查看完整版本: 我这个代码为什么只能先输入A才可以正常运行