简体   繁体   中英

Java program high-low game

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);


     }

}

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM