圆象限和多个逻辑运算符

本文关键字:逻辑运算符 | 更新日期: 2023-09-27 18:16:26

我正在尝试对一个有角和三角形的圆进行计算。

是否可以对逻辑运算符进行分组,或者不建议这样做。

EX:如果角度在圆的象限1(>315°但小于45°),或在象限3(> 135°但小于<= 225°)。

我的基本代码是:

if (angle > 315 && angle <= 45)
{
    //do codeA
}
else if (angle > 135 && angle <= 225)
{
    //do codeA
}

等。

我想做的是:

if ((angle > 315 && angle <= 45) || (angle > 135 && angle <= 225)
{
    //do codeA
}
else if ((angle > 45 && <= 135) || (angle > 225 && angle <= 315)
{
    //do codeB
}

我在考虑不使用开关操作符,因为我一直没有充分使用它们。

我有两个问题:

  1. 不管它是否是最好的方法,是否有可能按照我想要的方式对逻辑运算符进行分组(if ((A == 1 && B == 1) || (A == 2 && B == 4)) ?

  2. 开关语句是正确的方式来做到这一点吗?

圆象限和多个逻辑运算符

传统的

  1. 第一象限 0-90
  2. 第二象限 90-180
  3. 第三象限 180-270
  4. 第四象限 270-360.

所以如果A是角度,当你把它除以180时,当你在第一象限或第三象限时,你得到的余数是0-90。

所以你可以简单地使用模运算符来简化你的条件。

if (  (A % 180) < 90 )
{
  //first or third quad
}
else
{
  //second or fourth quad
}

请根据您的角度范围和边界条件自定义

这里不能使用switch语句,因为这里使用的是不相等比较