Um n
zu bekommen (siehe unten), wird das Fragment vor der Schleife verwendet.
In der Deklaration n
mit 3.0 zu initialisieren stört nicht.
Aber das könnte jemanden, der das Programm liest, verwirren.
Daher ist es besser n
nicht zu initialisieren.
import java.io.*; class Quadratwurzel { public static void main( String[] args ) throws IOException { final double FASTNULL = 1.0E-14 ; double n ; // der Anwender gibt einen Wert für n ein double schaetzung = 1.0 ; // die gleiche Schätzung funktioniert für jedes n // die Zahl vom Anwender holen String nChars; BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in) ); System.out.println("Geben Sie eine Zahl ein:"); nChars = stdin.readLine(); n = Double.parseDouble( nChars ); while ( Math.abs( n/(schaetzung*schaetzung) - 1.0 ) > FASTNULL ) { // eine neuen Wert für schaetzung berechnen schaetzung = n/(2*schaetzung) + schaetzung/2 ; } System.out.println("Die Quadratwurzel von " + n + " ist " + schaetzung ) ; } }
Das Programm ist soweit größtenteils korrekt. Aber es gibt ein potentielles Problem, das behoben werden sollte.