Java I';我对这个特殊代码的输出有意见

Java I';我对这个特殊代码的输出有意见,java,java.util.scanner,Java,Java.util.scanner,这是代码: 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) {

这是代码:

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();
        }
    }
    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();
我希望输出打印输入的数字的总和,当我输入时,让我们说一个像“Hello”这样的词,它会跳出循环并打印
sum0
AVG=0


我遇到的问题是,每当我输入一个数字时,它会向我索要两次,并且不会在之后的行中取下一个数字。每当我输入一个字符串变量,比如“I”,它就会输出Inputmismatch。解决这个问题的方法是什么?

不要混合使用
nextLine()
和所有其他
next
方法;挑一个。如果您想读取一行文字,只需调用
next()
,但如果您想让输入以“用户每次点击enter时,读取另一个标记”的形式流动(通常这样做),请更新“定义标记的内容”的定义:
scanner.usedimiter(“\r?\n”)

不要混合
nextLine()
和所有其他
next
方法;挑一个。如果您想读取一行文字,只需调用
next()
,但如果您想让输入以“用户每次点击enter时,读取另一个标记”的形式流动(通常这样做),请更新“定义标记的内容”的定义:
scanner.usedimiter(“\r?\n”)

尝试以下代码:

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

尝试以下代码:

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

仅仅通过查看代码我不知道答案,但我的直接建议是,不要忽略
input.nextLine()
的返回值。这可能是在读取您不期望的部分输入;类以大写字母(JavaPractice)开头。明白了,我会解决这个问题。我不知道答案,只是通过查看代码,但我的直接建议是,不要忽略
input.nextLine()的返回值。这可能是在读取您不期望的部分输入;类以大写字母开始(JavaPractice)。明白了,我们会处理这个问题。