gpt4 book ai didi

c++ - switch 语句中的 C2196 错误

转载 作者:行者123 更新时间:2023-11-30 03:45:02 25 4
gpt4 key购买 nike

我是 C++ 的新手,我正在尝试编写代码来评估用户输入的变量类型 char 的值,其名称是“response”,使用适用于 2 种情况的 switch 语句

情况 1:如果响应是 y(小写)或 Y(大写),它将在控制台窗口打印一条消息

情况 2:如果响应是 n(小写)或 N(大写),它将向控制台窗口打印另一条消息

但是我的代码遇到了一个问题,它产生了 C2196 错误,我在 msdn 上搜索了它,我明白它是什么意思,但仍然无法修复该错误

#include<iostream>
using namespace std;
int main()
{
char response;
cout << " Enter your response " << endl;
cin >> response;
switch (response)
{
case 'y' || "Y":
cout << "You chose y or Y " << endl;
break;
case 'n' || 'N':
cout << "You chose n or N " << endl;
break;
default:
cout << "You didn't choose a valid option " << endl;
break;
}
return 0;
}

最佳答案

case 标签不是 if 语句。你不能他们。相反,您可以拥有多个具有相同代码的案例标签。例如:

  case 'y':
case 'Y':
cout << "You chose y or Y " << endl;
break;

请记住,switch() 实际上是伪装的gotocase 标签实际上是 goto 标签,因此您不能对它们进行任何逻辑操作。它还允许您将 case 标签“组合”在一起,就像我展示的那样 - 一旦控制权转移到第一个标签,它就会继续通过第二个标签,直到它看到 break

附带说明一下,您不能像使用大写字母 Y 那样使用双引号来表示单个字符。

关于c++ - switch 语句中的 C2196 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com