Использование результата из оператора If для выполнения случаев переключения? - PullRequest
0 голосов
/ 14 мая 2018

Я не уверен, будет ли это работать. Я предполагаю, что должно, я просто не могу понять, как.

Я пытаюсь выполнить запрос на переключение из результата оператора If. Например, если результат If равен 1, первый случай выполняется

Вот о чем я думаю:

#include <iostream>
#include <ctype.h>
using namespace std;

int main(){
    cout<<"\tDetermine what has been inputted"<<endl<<endl;
    char value,ch;
    int option;

    do{

        cout<<"Input something: ";
        value = islower(value);
        cin>>value;
        if(value>='0' && value<='0'){
            option == 1;
        }
        else if (value=='a' || value=='e' || value=='i' ||value=='o' || 
value=='u') {
            option ==2;
        }

    switch(option){
            case 1:
                cout<<"You entered "<<value <<" a digit."<<endl;

                cout<<"Do you wish to test again? (Y/N): "<<endl;

                cout<<"Do you wish to test again? (Y/N): "<<endl;
                cin>>ch;
                break;
        case 2:
               cout<<"You have entered"<<value<<" a vowel"<<endl;

               cout<<"Do you wish to test again? (Y/N): "<<endl;
               cin>>ch;
               break;
       default:
             cout<<"That input is not valid"<<endl;
      }


   } while (ch == 'y' || ch =='Y');


    return 0;
}

Возможно ли то, что я думаю?

1 Ответ

0 голосов
/ 14 мая 2018

Инициализируйте переменные, чтобы избежать UB:

char value,ch = 0;
int option = 0;

это верно, только если value равно '0':

if(value>='0' && value<='0')

у вас есть две опечатки: == вместо=

option = 1;

и

option = 2;

Возможно, вы захотите установить ch в 'Y' в случае неверного вывода?

   default:
         cout<<"That input is not valid"<<endl;
...