2011-12-02 14 views
0

円と三角形の内側に計算をしようとしています。円四分円と複数の論理演算子

論理演算子をグループ化することは可能ですか、それはお勧めできません。

EX:角が円の象限1(> 315 deg、45 deg以下)、または象限3(> 135 degですが、< = 225 deg以下)の場合。

私の基本的なコードは、ということになります:など

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. これを行う適切な方法はswitch文ですか?

+0

を使用しているので、あなたがここにswitch文を使用することはできませんあなたの角度範囲と境界条件

にそれをカスタマイズしてください。 –

+0

((A == 1 && B == 1)||(A == 2 && B == 4))あなたはどういう意味ですか? – Charles

+0

テストしてそれを機能させました。上記の答えは正しいですが、それは数ヶ月前に何らかの奇妙な理由で私にとってうまくいきませんでした。私はプログラミングに新しいことを責めます。 – Charles

答えて

0

伝統的

  1. 第一クアドラント 0-90
  2. 第二クアドラント 90-180
  3. 第三クアドラント 180から270
  4. 第四象限 270- 360。あなたが第1又は第3象限にあるときに余り0-90を得るで割り場合

そこで場合、角度です。

モジュロ演算子を使用すると、条件を簡単にすることができます。

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

あなたはあなたがそれを正しい方法をやって不等比較

+0

無回答のお返事ありがとうございます。 。 。 "私はできるの?" "あなたはBをすることができます" "しかし私はAをすることはできますか?" – Charles

+0

もし私がここでA **をすることはできますか?Aは単純化することができます。人々はあなたにそう言うでしょう... –

+0

問題は円の四分円を円の計算に使用していないことです。 cohを使って計算する三角形の長さを計算します。これは、どの長さが隣接しているかを知るためにそれらの角度を必要とするためです。 – Charles