の最小値を取得する私は私の目的はdoble[] absOfSub
のlowst値を取得することですが、それはcompared= Double.compare(d2, d1);
は、二重[]
Exception in thread "main" java.lang.StackOverflowError
なぜオーバーフローラインで次の例外 を与える
次のコードを書きましたそれを修正する方法は?あなたのメソッドの内部index
の値を変更しないでください
EDIT
public class TestThe {
static double[] absOfSub = new double[5];
private static int index=0;
private static int compare(int currentIdx, int minIdx) {
if(index < absOfSub.length) {
if(absOfSub[currentIdx] < absOfSub[minIdx]) {
compare(currentIdx + 1, currentIdx);
} else {
compare(currentIdx + 1, minIdx);
}
}
return minIdx;
}
public static void main(String[] args) {
absOfSub[0]=1000;
absOfSub[1]=810;
absOfSub[2]=108;
absOfSub[3]=130;
absOfSub[4]=110;
double result;
int inndex= compare(0,1);
System.out.println(absOfSub[inndex]);
}
}
コードを修正することはできますが、Javaで再帰によって 'min'を実装するのは不自然です。単純な反復的な解決策にそれを直してみませんか? –
@MarkoTopolnikもっと説明を教えてください?もっと簡単にする方法は? – lonesome