2015-08-08 58 views
-1

我很難讓while循環以我想要的方式工作。我寫了一個叫梯形的方法(計算梯形的面積)。我需要在屏幕上打印梯形區域,然後是N值變爲N的梯形區域,然後是這兩個區域之間的區別。如何讓while循環工作?

然後,我需要while循環來保持N加倍,在公式中輸入此值,然後打印新差值,直到這個新差值小於或等於用戶輸入的值eps。然後需要在屏幕上打印找到的區域以及執行此操作所需的N值。

double traparea = trapezium(a, b, N); 

System.out.println(traparea + " using the trapezium rule"); 
double traparea2 = trapezium(a, b, 2 * N); 
double difftrap = (traparea2 - traparea); 

System.out.println(traparea2); 
System.out.println(difftrap); 


while (Math.abs(difftrap) < eps) { 
    N = 2 * N; 
    traparea2 = trapezium(a, b, N); 
    difftrap = traparea2 - traparea; 
} 

System.out.println("The integration from trapezium rule and the value of N are:"); 
System.out.print(traparea2 + " " + N); 
+0

這是什麼問題的代碼? – Seb

回答

0

直到這個新的差小於或等於一個用戶輸入的值稱爲EPS

而(difftrap> EPS)//只要做循環作爲差不小於或等於eps

+0

問題是最後一行輸出的是在開始時發現的traparea2的值以及爲N輸入的原始值。在我看來,循環完全被忽略,無論它是否爲< or > – Georgiegirl2301