c++ - 在 if 语句中使用 != 运算符来检查两个条件
问题描述
char type;
std::cout << "Enter Type(s or c only)";
std::cin >> type;
if (type != 's' || 'c')
{
std::cout << "NOT VALID";
}
s
如果用户输入除or以外的任何字符,我希望此代码显示“无效” c
,但即使输入 or ,它也会显示“无效s
” c
。
为什么会这样?
解决方案
而不是这个
if(type!='s'||'c')
你需要这样做
if((type!='s') && (type!='c'))
为什么会这样,请回答。
type!='s'||'c'
是(type!='s')||'c'
,而且总是如此true
。你做了两次检查(你检查它's'
然后反对'c'
),所以你还需要两次比较,你尝试过的类似化合物的构造不能那样工作。
推荐阅读
- python - 引导标签输入标签值未与表单一起提交
- vertica - 如果我在 3 节点集群中加载 100 行的表,将创建多少个 ROS 容器
- c++ - 当用作概念的默认参数时,非重载函数会产生未解决的重载错误
- go - 订阅频道时从redis接收EOF
- shell - 尝试使用 Azure 管道中 bash 脚本中的预定义变量设置变量
- r - 了解为什么 Shiny 中的操作按钮在使用其中几个时不起作用
- python - 导入文件时出现错误,请问如何解决?
- python-3.x - 我的五个 - 存储五个姓名和五个数字,然后才被提升为需要输入的数字
- linux - 通过 ssh 远程触发的 Bash 脚本无法正常工作
- wpf - 使用 DataTemplateSelector 时,ListViewItem 内容未拉伸