0

I wrote this in jQuery however the loop isn't right and I can't see my error? It doesn't end when a user inputs -99? Nor calculate the highest and lowest figure?

import java.util.Scanner;

public class LargestandSmallest
{

    public static void main (String [] args)
    {

        //Create a Scanner object for the keyboard input
        Scanner keyboard = new Scanner(System.in);

        //Declare local variable
        double number;


        //Explain what the program does
        System.out.println ("This program will ask you to enter in a series of");
        System.out.println ("numbers, and then will display the lowest and");
        System.out.println ("highest numbers, out of what you enter, until you input");
        System.out.println ("the value indicated to end the program.");


        //Have the user input a series of numbers and continue processing 
        //until the user enters -99
        System.out.println ("Please enter a number: (or -99 to end the program).");
        number = keyboard.nextDouble();

        //Display the table headings
        System.out.println ("Lowest\tHighest");
        System.out.println ("------------------");

        //Call the method to caluclate the highest and lowest numbers
        calculateLowHigh(number);
    }

    //Module called calculateTemp
    public static void calculateLowHigh(double number)
    {  

        //Declare local calculation variables
        double highestNumber = 0;
        double lowestNumber = 0;

        //Set the parameters for running the loop
        while (number != -99)
        {
            for(number = 0; number < 5; number++)
            {

                //Calculate the lowest and highest numbers entered
                if (number > highestNumber) {
                    highestNumber = number;
                }

                if (number < lowestNumber) {
                    lowestNumber = number; 
                }

            }  
        }

        //Display the results
        System.out.println (lowestNumber + "\t\t" + highestNumber);


     }

}
Dawood ibn Kareem
  • 77,785
  • 15
  • 98
  • 110
AThompsonCO
  • 1
  • 2
  • 6
  • How is `number` supposed to reach `-99` in that `while` loop if your `for` loop only goes up to `5`? – millimoose Oct 05 '13 at 00:40
  • It's bad idea to compare a double using `==`. Check [this](http://stackoverflow.com/q/2896013/422353). – madth3 Oct 05 '13 at 00:42

1 Answers1

1

Your problem is that in calculateLowHigh, you're using the number variable for two different things. It's the parameter in which the number that the user typed is passed into this method; but you've also used it as the loop index inside the for loop. Maybe you should use a different variable for one or the other purpose. Better still, dispense with the for loop altogether - it doesn't seem to do anything.

Also, the while loop should be done in main, not in calculateHighLow, otherwise the user will only ever have the opportunity to input a number once.

Dawood ibn Kareem
  • 77,785
  • 15
  • 98
  • 110