2014-01-30 3 views
0

Я только начал изучать Java, и у меня есть следующая проблема.Оператор добавления внутри цикла while (Java)

Мне нужна помощь с этим циклом, который у меня внутри цикла while.

while (difference > epsilon) { 
    for (int u = 0; u <= N, u++) { 
     for (int d = 0; d <= N, d++) { 
      formulaLong += Math.pow(E, -rT) * Math.pow(0.5, N) * productofVC[u][d]; 
     } 
    } 
} 

Каждый раз, когда проходит цикл в то время как переменная formulaLong добавляется к предыдущему formulaLong от предыдущего цикла, а. Как это сделать, чтобы formulaLong дал мне формулу для текущего цикла while?

+2

Просто сбросьте 'formulaLong' до нуля в начале или конце цикла. – chrylis

+0

Как мне это сделать? жаль, что я только начал изучать java – user3251256

+1

Вместо того, чтобы сбросить одну и ту же переменную, просто объявите переменную * внутри * while-loop, как в 'while (..) {double formulaLong = 0; ..} '. Эта новая переменная (которой присвоено хорошее значение по умолчанию) отличается от каждого цикла и помощников (или, следовательно, я нахожу) читаемость кода, ограничивая область видимости переменной. – user2864740

ответ

0

просто добавьте эту строку .. как я понимаю из вашего вопроса !!

while(difference > epsilon){ 
for (int u = 0; u <= N, u++){ 
    for (int d = 0; d <= N, d++){ 
    formulaLong += Math.pow(E, -rT)*Math.pow(0.5, N)*productofVC[u][d]; 
    } 
} 
formulaLong = 0; // so you reset the value after the for loop 
} 
0

Может просто повторно INIT над вашей верхней цикл, как это:

while(difference > epsilon){ 
    formulaLong = 0;//reset 
    for (int u = 0; u <= N, u++){ 
    for (int d = 0; d <= N, d++){ 
     formulaLong += Math.pow(E, -rT)*Math.pow(0.5, N)*productofVC[u][d]; 
    } 
    } 
} 

Не реальный уверен, как ваш цикл в то время как никогда не остановится, хотя.

Смежные вопросы