为什么在do while循环中的switch case不能工作,即使应该继续,也会脱离循环?

问题描述 投票:0回答:1

预期的行为是将名字作为输入,并再次运行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);
}
c++ switch-statement do-while
1个回答
0
投票

它不会 "什么都不做",而是等待下一个输入。因为这就是你告诉它要做的事情!

如果你想得到另一个提示,将 cout<<"Enter 1,2 or 3 : ";里面 的循环。


对了,一个 char一个字节 所以,这并不适合阅读整个客户名称;此外。你应该避免使用 int电话号码.


0
投票

使用break;而不是continue;break会把执行移到开关的末端。

编辑:我认为问题是你没有再看到你的提示,所以把它移到你的循环里面。

© www.soinside.com 2019 - 2024. All rights reserved.