-3

現状では、これは私が試しているコードです:

if(gear.isLeftHand())
    helix = (gear.getParentPair().beta());
else if (gear.isRightHand())
    helix = Math.PI - (gear.getParentPair().beta());
else if (gear.isSpur())
    helix = 0;
else 
    helix = 0;

double stepAng =  (thickness /radius) * helix;

ただし、機能していません。これは、「らせんを変数に解決できない」ためです

初期角度が左利きか右利きかに応じて stepAng の値を取得しようとしています。したがって、「らせん」の値は、この方向に応じて異なる式から計算されます。

どんな助けでも大歓迎です。

4

5 に答える 5

5

を実際に宣言する必要がありhelix、それを 0 に初期化すると、式の 2 つをなくすことができます (double参照するのは与えられたものだと思いますMath.PI)。

double helix = 0;
if (gear.isLeftHand()) {
    helix = (gear.getParentPair().beta());
} else if (gear.isRightHand()) {
    helix = Math.PI - (gear.getParentPair().beta());
}

double stepAng =  (thickness / radius) * helix;
于 2013-10-31T14:38:31.250 に答える
2

使用範囲外でhelixを宣言したか、まったく宣言していない可能性があります。

double helix = 0;

// The rest of the code follows
于 2013-10-31T14:39:19.563 に答える
1

helixステートメントの前に宣言する必要がありifます。を割り当てようとするとstepAnghelixは範囲外です。

于 2013-10-31T14:38:24.373 に答える
1

「変数 XXX を解決できません」(あなたの場合はヘリックス) というコンパイル エラーが発生した場合は、どこからでもアクセスできるスコープで定義する必要があります。ここでは、必要に応じてメソッドまたはクラス インスタンス変数を開始することができます。 .

最初の方法:

  public double getArea(){
    double helix=0.0;
    if(cond){ 
        helix=//some code
    }else{
        helix=//some code
    }
       // some code with helix
  }

2 番目の方法:

 public class AreaCalculator(){
   //highest scope based on requirement.
   private double helix;

   public double getArea(){
      double helix=0.0;
      if(cond){ 
         helix=//some code
      }else{
         helix=//some code
      }
      // some code with helix
   }//method
 }//class
于 2013-10-31T14:39:14.033 に答える
0

このようにしたい場合:

else if (gear.isSpur())
    helix = 0;
else 
    helix = 0

あなたはただ行うことができます:

double helix = 0;
if (gear.isLeftHand()) {
    helix = (gear.getParentPair().beta());
} else if (gear.isRightHand()) {
    helix = Math.PI - (gear.getParentPair().beta());
}


double stepAng =  (thickness / radius) * helix;
于 2013-10-31T14:51:17.543 に答える