我在C ++程序中遇到switch语句问题

问题描述

嗨,我制作了一个带开关的程序,如果我输入一个字符来告诉我元音是元音还是辅音是字母来告诉我如果是奇数或偶数,即使我是数字我也不知道问题出在哪里,条件是必须使用开关。 问题是:它不会给我任何错误,但是当我输入字母时,它还会显示该字母是偶数还是奇数。我该如何解决

  char n;
  cout<< "Input character : "; cin>>n;
  switch(n){
  case 'A':
  case 'a':
  case 'E':
  case 'e':
  case 'I':
  case 'i':
  case 'O':
  case 'o':
  case 'U':
  case 'u':
  cout<<n<< " vowel ."<<endl; break;
  case 'B':case 'b':case 'C':case 'c':case 'D':case 'd':
  case 'F':case 'f':case 'G':case 'g':case 'H':case 'h':
  case 'J':case 'j':case 'K':case 'k':case 'L':case 'l':
  case 'M':case 'm':case 'N':case 'n':case 'P':case 'p':
  case 'Q':case 'q':case 'R':case 'r':case 'S':case 's':
  case 'T':case 't':case 'V':case 'v':case 'W':case 'w':
  case 'X':case 'x':case 'Y':case 'y':case 'Z':case 'z':
  cout<<n<< " is consonant ."<<endl; break;
  }

  switch(n%2 ==0){
  case 0: cout<<n<< " is even"; break;
  case 1: cout<<n<< " is odd"; break;
  default:cout<<n<< " is simbol"<<endl; break;
  }

解决方法

我想这就是您想要的。文本“ is simbol”将永远不会被写入。随时添加。 :-)

#include <iostream>
#include <ostream>

int main(void)
{

    char n;
    std::cout << "Input character : "; std::cin >> n;
    switch (n)
    {
    case 'A':
    case 'a':
    case 'E':
    case 'e':
    case 'I':
    case 'i':
    case 'O':
    case 'o':
    case 'U':
    case 'u':
        std::cout << n << " vowel ." << std::endl; break;
    case 'B':case 'b':case 'C':case 'c':case 'D':case 'd':
    case 'F':case 'f':case 'G':case 'g':case 'H':case 'h':
    case 'J':case 'j':case 'K':case 'k':case 'L':case 'l':
    case 'M':case 'm':case 'N':case 'n':case 'P':case 'p':
    case 'Q':case 'q':case 'R':case 'r':case 'S':case 's':
    case 'T':case 't':case 'V':case 'v':case 'W':case 'w':
    case 'X':case 'x':case 'Y':case 'y':case 'Z':case 'z':
        std::cout << n << " is consonant ." << std::endl; break;

    case '0':
    case '2':
    case '4':
    case '6':
    case '8':
        std::cout << n << " is even"; break;

    case '1':
    case '3':
    case '5':
    case '7':
    case '9':
        std::cout << n << " is odd"; break;
    }
}
,

对于简单的元音/辅音:

char n;
cin >> n;
switch(n){
    case 'A': case 'a': case 'E': case 'e': case 'I': case 'i': case 'O': case 'o':
    case 'U': case 'u':
    cout << " IS VOWEL \n";
    // Any other alphabet except a,e,i,o,u is consonant.
    default: cout << "IS Consonant\n";
}

对于奇数,您也可以使用:

如果要从用户那里输入另一个数字,请检查偶数/奇数

int num;
cin >> num;
num = num%2;

否则要检查字符n的偶数/奇数

int num = int(n)%2; // n is the char declared above and int(num) is ascii of n

以下是通用switch语句:

switch(num)
{
    case 0: cout << "Number is Even\n"; break;
    case 1: cout << "Number is Odd\n"; break;
}
// This will be generic