2016-03-23 11 views
0

私は、Javaとstackoverflowの新機能ですので、私は無知なように見えて申し訳ありませんが、このプログラムを使って2つの数値を一緒に乗算しています。完全なプログラムにははるかに多くの操作が含まれており、何百行ものコード行ですが、私はこの特定のメソッドに必要と思ったものだけを含んでいました。私はテストハーネスを持っているので、すべてのサブメソッドが正しく動作することを知っています。私が苦労している問題は、第3行目でfactor1を製品に追加することです。値は正しく追加されますが、5行目でfactor1に2を掛けた場合、3行目でproductに加算された値も2倍になり、誤った製品値になります。ファクタ1が2倍になって、製品用語に逆らっていないことを確認するにはどうすればよいですか?Javaで値が自動的に変更されないようにする方法

while (Long.parseLong(factor2.toString()) >= 1) { 
    if (factor2.bigIntArray[0] % 2 == 1) { 
     product = product.add(factor1); 
    } 
     factor1 = factor1.multiplyByTwo(); 
     factor2 = factor2.divideByTwo(); 

} 
+0

*ファクタ1が2倍になって、製品用語に逆らっていないことを確認するにはどうすればいいですか? - - factor1.multiplyByTwo();の結果を割り当てるときに別のローカル変数を使用してください – TheLostMind

+0

'factor2'、' factor'、 'product'のデータ型? – nbrooks

答えて

0

あなたがコード

`datamember=datamember*2;` 

を使用するのではなくそれはそれは付加価値を変更doesntのこの

return new FactorClass(datamember*2);
をやってみてくださいmultiplyByTwo私はあなたの方法で考えます。

あなたが実際に変更された値を取得している場所であるので、mulTiplyByTwoメソッドのコードを表示できる方が良いでしょう。

関連する問題