Почему мой коммутатор, который находится внутри do, пока l oop не работает и выходит из l oop, даже когда он должен продолжаться? - PullRequest
1 голос
/ 30 апреля 2020

Ожидаемое поведение - взять имя в качестве ввода и снова запустить while l oop, но вместо этого оно просто переходит на следующую строку и ничего не делает.

#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);
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Это не «ничего не делает»; он ждет следующего ввода. Потому что это то, что вы сказали делать!

Если вы хотите получить другое приглашение, переместите cout<<"Enter 1,2 or 3 : "; строку внутрь l oop.


Кстати, char равен один байт , так что это не совсем подходит для чтения полного имени клиента; кроме того, вам следует избегать использования int s для телефонных номеров .

0 голосов
/ 30 апреля 2020

Используйте перерыв; вместо продолжения; Перерыв переместит выполнение в конец коммутатора.

Редактировать: Я думаю, проблема в том, что вы просто больше не видите своего приглашения. так что переместите его внутрь вашего l oop.

...