У меня проблема с выводом этого конкретного кода - PullRequest
0 голосов
/ 13 июля 2020

Это код:

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

Я хочу, чтобы на выходе выводилась сумма введенных чисел, и когда я вхожу, скажем слово типа «Привет», оно прерывается. из l oop и печатает Sum 0 0 и AVG = 0.

Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я ввожу номер, он запрашивает его два раза и не принимает следующее число в строке после этого, и всякий раз, когда я ввожу строковую переменную, я говорю «I», она выводит Inputmismatch. Что бы исправить?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Попробуйте этот код:

    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();
1 голос
/ 13 июля 2020

Не смешивайте nextLine() и все остальные next методы; Выбери один. Если вы хотите прочитать текст длиной в строку, просто вызовите next(), но если вы хотите, чтобы ввод проходил как «каждый раз, когда пользователь нажимает ввод, прочитайте другой токен», что вы обычно делаете, обновите определение «что определяет токен? ': scanner.useDelimiter("\r?\n");.

...