鱼C论坛

 找回密码
 立即注册
查看: 1077|回复: 1

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

[复制链接]
发表于 2023-10-12 13:41:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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以外的字符时,程序就会输出“无效的选择”,而不会继续等待输入。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-3 22:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表