C++ 我们能用C++;转换 #包括 使用名称空间std; int main(){ char i; cin>>i; 开关(一){ 格('e'| | i'| | | | | | | | | | | | a'): 在没有中断语句的情况下,前面的案例可能会“失败”,因此这实现了您要寻找的|: #include <iostream> using namespace std; int main(){ char i; cin >>i; switch (i){ case ('e'||'i'||'o'||'u'||'a'): cout<<"Vowel"; break; case ('+'||'-'||'/'||'*'||'%'): cout<<"Op"; break; } return 0; } #包括 使用名称空间std; int main(){ char i; cin>>i; 开关(一){ 案例“e”: 案例“i”: 案例“o”: 案例“u”: 案例“a”: 不能这样格式化它: #include <iostream> using namespace std; int main(){ char i; cin >>i; switch (i){ case 'e': case 'i': case 'o': case 'u': case 'a': cout<<"Vowel"; break; case '+': case '-': case '/': case '*': case '%': cout<<"Op"; break; } return 0; } 开关(一) { 案例“a”: 案例“e”: 案例“i”: 案例“o”: 案例“u”: 库特 您可以使用fallthrough将多个案例值映射到同一操作 诊断消息解释了这一点——可以跳过初始化。但这不只是一个警告吗
不,您不能;在C++ 我们能用C++;转换 #包括 使用名称空间std; int main(){ char i; cin>>i; 开关(一){ 格('e'| | i'| | | | | | | | | | | | a'): 在没有中断语句的情况下,前面的案例可能会“失败”,因此这实现了您要寻找的|: #include <iostream> using namespace std; int main(){ char i; cin >>i; switch (i){ case ('e'||'i'||'o'||'u'||'a'): cout<<"Vowel"; break; case ('+'||'-'||'/'||'*'||'%'): cout<<"Op"; break; } return 0; } #包括 使用名称空间std; int main(){ char i; cin>>i; 开关(一){ 案例“e”: 案例“i”: 案例“o”: 案例“u”: 案例“a”: 不能这样格式化它: #include <iostream> using namespace std; int main(){ char i; cin >>i; switch (i){ case 'e': case 'i': case 'o': case 'u': case 'a': cout<<"Vowel"; break; case '+': case '-': case '/': case '*': case '%': cout<<"Op"; break; } return 0; } 开关(一) { 案例“a”: 案例“e”: 案例“i”: 案例“o”: 案例“u”: 库特 您可以使用fallthrough将多个案例值映射到同一操作 诊断消息解释了这一点——可以跳过初始化。但这不只是一个警告吗,c++,switch-statement,C++,Switch Statement,不,您不能;在开关es中,您只能隐式使用=运算符,并且只能在整数和枚举类型上使用(§6.4.2)。您应该将该开关重写为 switch (i) { case 'a': case 'e': case 'i': case 'o': case 'u': cout << "Vowel"; break; } 开关(一){ 案例“e”: 案例“i”: 案例“o”: 案例“u”: 案例“a”: cout更简洁的替代解决方案:
开关
es中,您只能隐式使用=
运算符,并且只能在整数和枚举类型上使用(§6.4.2)。您应该将该开关重写为
switch (i)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
cout << "Vowel";
break;
}
开关(一){
案例“e”:
案例“i”:
案例“o”:
案例“u”:
案例“a”:
cout更简洁的替代解决方案:
switch (i){
case 'e':
case 'i':
case 'o':
case 'u':
case 'a':
cout<<"Vowel";
break;
case '+':
case '-':
case '/':
case '*':
case '%':
cout<<"Op";
break;
}
#包括
// ...
如果(strchr(“eioua”,i))不能我们可以,除非它并不意味着我们想要的(并且在两种情况下产生相同的值):您将对一组非零整数值执行逻辑or,在这两种情况下,结果都是true。+1表示第一部分的正确答案,我将给出另一个+1表示通过提供链接避免答案重复。重复:
#include <cstring>
// ...
if (strchr("eioua", i)) cout << "vowel";
if (strchr("+-/*%", i)) cout << "operator";