Saksham Mehta
Saksham Mehta

Reputation: 17

I'm having issue with the output with this particular code

This is the code:

import java.util.Scanner;

    public class javapractice {
        public static void main(String[] Args) {
            int XX = 0;
            int count = 0;
            Scanner input = new Scanner(System.in);
    
            while (true) {
                System.out.println("Enter Number :");
                int number = input.nextInt();
                boolean nextint = input.hasNextInt();
                if (nextint) {
                    count++;
                    XX += number;
                } else {
                    break;
                }
                input.nextLine();
            }
           int YY = XX/count;
            System.out.println("SUM = " + XX + " AVG = " + YY);
            input.close();
        }
    }

I want the output to print the sum of the numbers entered and when I enter let's say a word like "Hello", it breaks out of the loop and prints Sum 0 0 and AVG = 0.

The issue I'm having is that whenever I enter the number, it asks me for it two times and doesn't take the next number in the row after that and whenever I enter a string variable lets say "I", it outputs Inputmismatch. What would be the fix to this?

Upvotes: 0

Views: 51

Answers (2)

Cardstdani
Cardstdani

Reputation: 5223

Try this code:

    int XX = 0;
    int count = 0;
    Scanner input = new Scanner(System.in);

    while (true) {
        System.out.println("Enter Number: ");
        if (input.hasNextInt()) {
            count++;
            XX += input.nextInt();
        } else {
            break;
        }
    }
    int YY = XX / count;
    System.out.println("SUM = " + XX + " AVG = " + YY);
    input.close();

Upvotes: 1

rzwitserloot
rzwitserloot

Reputation: 102812

Don't mix nextLine() and all the other next methods; pick one. If you want to read a line's worth of text, just call next(), but if you want the input to flow as 'everytime a user hits enter, read another token', which you usually do, update the definition of 'what defines a token?': scanner.useDelimiter("\r?\n");.

Upvotes: 1

Related Questions