Potential Problem

Classic programmed-learning exercises, refreshed for modern Java and presented in the current MrStyner.com portfolio style.

Modern Java noteThis archive has been refreshed for Java 25 LTS. Core language concepts remain useful, while outdated setup instructions and browser-era Java are labeled or replaced. Java 26 is the current feature release; Java 25 is used here as the stable teaching baseline.
go to previous page   go to home page   go to next page

Answer:

The fragment is used in front of the loop to get N, as seen below.

Potential Problem

It does not hurt to initialize N to 3.00 in the declaration. But this might confuse a reader of the program, so it is best to not initialize N.


import java.util.Scanner;
class  SquareRoot
{

  public static void main( String[] args ) 
  {
    final double smallValue = 1.0E-14 ;
    double N  ;               // the user enters a value for N
    double guess = 1.00 ;     // the same first guess works for any N

    // get the number from the user
    Scanner scan = new Scanner( System.in );
    System.out.print("Enter the number: "); 
    N = scan.nextDouble();

    while ( Math.abs( N/(guess*guess) - 1.0 ) > smallValue )
    {      
       guess =  N/(2*guess) + guess/2 ; // calculate a new guess
    }

    System.out.println("The square root of " + N + " is " + guess ) ;
  }

}

The program as given is largely correct, but there is a big potential problem that should be fixed.

QUESTION 19:

What would happen if the user entered a negative number?