c++ - 为什么我的do case循环内的开关盒无法正常工作,即使应该继续运行也会中断循环?

标签 c++ switch-statement do-while

预期的行为是将名称作为输入并再次运行while循环,但是它只是转到下一行而不执行任何操作。

#include <iostream>
using namespace std;   
int main()
{
    int ch,mb;
    bool y=true;
    char name;
    cout<<"Enter 1,2 or 3 : ";
    do{
             cin>>ch;
             switch(ch)
             {
                 case 1:
                     cout<<" \n\t 1.ENTER CUSTOMER NAME :";    
                     cin>>name;     
                     continue;
                 case 2:
                     cout<<" \n\t 2.ENTER MOBILE NUMBER:";
                     cin>>mb;
                     continue;
                 case 3:
                     y=false;
            }
      }while(y!=false);
}

最佳答案

它不会“无所事事”;它等待下一个输入。因为那就是你告诉它要做的!

如果要再次提示,请在循环内移动cout<<"Enter 1,2 or 3 : ";行。

顺便说一句,char是一个字节,因此实际上不适合读取整个客户名称。此外,you should avoid using int s for telephone numbers

关于c++ - 为什么我的do case循环内的开关盒无法正常工作,即使应该继续运行也会中断循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61529077/

相关文章:

java - Java 中的 Do/While 语句

c++ -::相对 。对于成员函数 (C++)

c++ - 使用 XSendEvent 传递鼠标事件

c++ - 重新审视 switch 内部的对象实例化 (c++)

c# - 如何用 IOC 替换 switch 语句以便我可以保持 SOLID 原则

Java switch case 延迟

c++ - 无法调用存储在 unordered_map 中的函数

c++ - 我这里需要读写锁吗

Java Simon 说程序问题

c++ - 在 do-while 循环中同时检查两个条件