C++ 简单 if 语句不检查?

标签 c++ windows if-statement 3d mouse

我有一个“鼠标阅读器”类,它可以将旋转转换为 x、y、z。 (这是一种第一人称相机)但我不想让这个人直视他的轴,所以我这样做了:

if (!(Altitude  +  MouseCoordChange[1] > 269) && !(Altitude  +  MouseCoordChange[1] < 91))
{

我计算了检查结果,它很完美,它可以防止你上下太多,但有时,它会低于 91 和 269,这怎么可能?

谢谢

最佳答案

你犯规了 De Morgen's Law

换句话说:

!A && !B = !(A || B)

我怀疑你想要的是:

if (!((Altitude  +  MouseCoordChange[1] > 269) || 
      (Altitude  +  MouseCoordChange[1] < 91)))
{

或者更清楚:

if ((Altitude  +  MouseCoordChange[1] <= 269) && 
    (Altitude  +  MouseCoordChange[1] >= 91)))
{

关于C++ 简单 if 语句不检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12767166/

相关文章:

c++ - 经理博弈类的一般结构

c++ - 为什么变长数组不是 C++ 标准的一部分?

c++ - 从使用不同编译器构建的显式加载的 dll 按值传递结构

apache - 基于服务器名称/路径的 htaccess 条件语句

c++ - 浮点值等于整数

php - 通过php远程实现c++程序

c++ - 为什么 GCC 不能优化 "x && (x & 4242)"到 "x & 4242"中的逻辑/按位与对?

c++ - 对于系统中设置的任何分辨率,我们可以获得 winlogon 屏幕的坐标 (x,y) 吗? (如附图所示)

c - 尝试在Windows下用cygwin编译Asterisk,找不到libuuid

php - PHP 在不包含行的 MYSQL 结果上使用 if() 时出错