逻辑OR优先级
Logical OR precedence
我曾尝试编写一个循环,该循环会阻止用户使用||
运算符向程序中输入错误类型的数据(实际上是布尔值)。
int Entrer()
{
int A;
do
{
cout<<"Entrez 0 ou 1."<<endl;
cin >> A;
}
while (A != (1 || 0));
return A;
}
有人能告诉我为什么这个程序只接受1
而不接受0
吗?
do { ... } while (A != (1 || 0));
应该是while (A != 1 && A != 0);
否则,A != (1 || 0)
代表A != 1
,因为(1 || 0)
是在!=
之前评估的。
如果要接受1
和0
,则需要将条件写为while(A != 1 && A != 0);
。当您编写条件时,它将首先计算(1 || 0)
,并且由于1
是true
,0
是false
,它将计算为A != 1
。
相关文章:
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 瓦尔格林德:数学函数"Conditional jump or move depends on uninitialised value(s)"
- 按对象的特定方法按升序排列的C++优先级队列
- 使用2个键的cpp-stl::优先级队列排序不正确
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 为什么我需要C++中不同的排序格式来对这个USACO代码上的数组和优先级队列进行排序
- 打印优先级队列
- 带自定义比较器的最小优先级队列
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 优先级队列自定义比较器
- 排序数组优先级队列
- 更改运行时优先级队列的排序功能
- 模式"allocate memory or use existing data"
- N-API include an .so or dll
- 优先级队列构造函数的工作
- 实现优先级队列
- 优先级队列功能比较
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 逻辑OR优先级