我对此特定代码的输出有问题



这是代码:

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

我希望输出打印输入的数字的总和,当我输入时,让我们说一个词,比如";你好";,它脱离循环并打印CCD_ 1和CCD_。

我遇到的问题是,每当我输入一个数字时,它会问我两次,并且不接受后面一行中的下一个数字,每当我键入一个字符串变量时,让我们说";I";,它输出Inputmismatch。解决办法是什么?

不要混合使用nextLine()和所有其他next方法;选一个。如果你想读取一行的文本,只需调用next(),但如果你想让输入流为"每次用户点击回车键,读取另一个令牌"(你通常会这样做(,请更新"什么定义了令牌?"的定义:scanner.useDelimiter("r?n");

尝试此代码:

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

最新更新