Java 如何从用户输入列表中添加数字?
我正在尝试编写一个程序,它将告诉您:Java 如何从用户输入列表中添加数字?,java,Java,我正在尝试编写一个程序,它将告诉您: 用户在命令提示下输入的列表中的整数数 这些整数的和 但我在弄清楚如何访问这些单独的号码时遇到了一些困难。我已经尝试过编写while循环,以及“if”语句 我遇到的另一个问题是,当我尝试运行我的程序时,我收到以下错误消息:线程“main”java.lang.IllegalStateException中的异常:扫描程序关闭 注意:我对Java非常陌生,所以一个主要使用扫描器、next方法和hasNext方法的更简单的解决方案会更好 import java.uti
import java.util.Scanner;
public class InputParser
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("How many values do you want to parse?: ");
int numValues = scanner.nextInt();
System.out.println("Please enter " + numValues + " values: ");
while(scanner.hasNextLine())
{
if(scanner.hasNext())
{
if(scanner.hasNextInt())
{
int sum;
System.out.println("The sum of your values is: " + sum + ".");
}
}
scanner.close();
}
}
}
您的代码应该如下所示:
Scanner scanner = new Scanner(System.in);
System.out.print("How many values do you want to parse?: ");
int numValues = scanner.nextInt();
int[] values = new int(numValues);
int sum = 0,i=0;
while(i<numValues)
{ i++;
System.out.print("Enter "+ i+" number : ");
values[i-1] = scanner.nextInt();
sum+= values[i-1];
}
System.out.println("Sum is : "+sum);
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
System.out.print(“要解析多少个值?”:”;
int numValues=scanner.nextInt();
int[]值=新的int(numValues);
整数和=0,i=0;
而(i您的代码应该是:
Scanner scanner = new Scanner(System.in);
System.out.print("How many values do you want to parse?: ");
int numValues = scanner.nextInt();
int[] values = new int(numValues);
int sum = 0,i=0;
while(i<numValues)
{ i++;
System.out.print("Enter "+ i+" number : ");
values[i-1] = scanner.nextInt();
sum+= values[i-1];
}
System.out.println("Sum is : "+sum);
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
System.out.print(“要解析多少个值?”:”;
int numValues=scanner.nextInt();
int[]值=新的int(numValues);
整数和=0,i=0;
而(i您的代码应该是:
Scanner scanner = new Scanner(System.in);
System.out.print("How many values do you want to parse?: ");
int numValues = scanner.nextInt();
int[] values = new int(numValues);
int sum = 0,i=0;
while(i<numValues)
{ i++;
System.out.print("Enter "+ i+" number : ");
values[i-1] = scanner.nextInt();
sum+= values[i-1];
}
System.out.println("Sum is : "+sum);
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
System.out.print(“要解析多少个值?”:”;
int numValues=scanner.nextInt();
int[]值=新的int(numValues);
整数和=0,i=0;
而(i您的代码应该是:
Scanner scanner = new Scanner(System.in);
System.out.print("How many values do you want to parse?: ");
int numValues = scanner.nextInt();
int[] values = new int(numValues);
int sum = 0,i=0;
while(i<numValues)
{ i++;
System.out.print("Enter "+ i+" number : ");
values[i-1] = scanner.nextInt();
sum+= values[i-1];
}
System.out.println("Sum is : "+sum);
scanner.close();
Scanner Scanner=新的扫描仪(System.in);
System.out.print(“要解析多少个值?”:”;
int numValues=scanner.nextInt();
int[]值=新的int(numValues);
整数和=0,i=0;
虽然(我我不明白为什么你会问用户他们要提前求和多少个数字。基本上,你的代码可以简化并处理任意数量的数字。在扫描仪上调用close()
也是一个非常糟糕的主意(因为你无法重新打开它,如果你将它提取到一个方法中,你将创建一个难以调试和查找的问题)
Scanner scanner = new Scanner(System.in);
// System.out.print("How many values do you want to parse?: ");
// int numValues = scanner.nextInt();
System.out.println("Please enter values to sum (type quit to stop)");
int sum = 0; // <-- start at 0.
int count = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
count++;
sum += scanner.nextInt();
} else {
String str = scanner.next();
if (str.equalsIgnoreCase("quit")) {
break; // <-- end the loop.
}
System.out.printf("The value '%s' is not an int (quit to stop).%n", str);
}
}
System.out.printf("The sum of your %d values is %d.%n", count, sum);
// scanner.close(); // <-- Really Bad Idea
Scanner Scanner=新的扫描仪(System.in);
//System.out.print(“要解析多少个值?”:”;
//int numValues=scanner.nextInt();
System.out.println(“请输入要求和的值(键入quit停止)”;
int sum=0;//我不明白为什么你会问用户他们要提前求和多少个数字。基本上,你的代码可以简化并处理任意数量的数字。在扫描仪上调用close()
也是一个非常糟糕的主意(因为你无法重新打开它,如果你将它提取到一个方法中,你将创建一个难以调试和查找的问题)
Scanner scanner = new Scanner(System.in);
// System.out.print("How many values do you want to parse?: ");
// int numValues = scanner.nextInt();
System.out.println("Please enter values to sum (type quit to stop)");
int sum = 0; // <-- start at 0.
int count = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
count++;
sum += scanner.nextInt();
} else {
String str = scanner.next();
if (str.equalsIgnoreCase("quit")) {
break; // <-- end the loop.
}
System.out.printf("The value '%s' is not an int (quit to stop).%n", str);
}
}
System.out.printf("The sum of your %d values is %d.%n", count, sum);
// scanner.close(); // <-- Really Bad Idea
Scanner Scanner=新的扫描仪(System.in);
//System.out.print(“要解析多少个值?”:”;
//int numValues=scanner.nextInt();
System.out.println(“请输入要求和的值(键入quit停止)”;
int sum=0;//我不明白为什么你会问用户他们要提前求和多少个数字。基本上,你的代码可以简化并处理任意数量的数字。在扫描仪上调用close()
也是一个非常糟糕的主意(因为你无法重新打开它,如果你将它提取到一个方法中,你将创建一个难以调试和查找的问题)
Scanner scanner = new Scanner(System.in);
// System.out.print("How many values do you want to parse?: ");
// int numValues = scanner.nextInt();
System.out.println("Please enter values to sum (type quit to stop)");
int sum = 0; // <-- start at 0.
int count = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
count++;
sum += scanner.nextInt();
} else {
String str = scanner.next();
if (str.equalsIgnoreCase("quit")) {
break; // <-- end the loop.
}
System.out.printf("The value '%s' is not an int (quit to stop).%n", str);
}
}
System.out.printf("The sum of your %d values is %d.%n", count, sum);
// scanner.close(); // <-- Really Bad Idea
Scanner Scanner=新的扫描仪(System.in);
//System.out.print(“要解析多少个值?”:”;
//int numValues=scanner.nextInt();
System.out.println(“请输入要求和的值(键入quit停止)”;
int sum=0;//我不明白为什么你会问用户他们要提前求和多少个数字。基本上,你的代码可以简化并处理任意数量的数字。在扫描仪上调用close()
也是一个非常糟糕的主意(因为你无法重新打开它,如果你将它提取到一个方法中,你将创建一个难以调试和查找的问题)
Scanner scanner = new Scanner(System.in);
// System.out.print("How many values do you want to parse?: ");
// int numValues = scanner.nextInt();
System.out.println("Please enter values to sum (type quit to stop)");
int sum = 0; // <-- start at 0.
int count = 0;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
count++;
sum += scanner.nextInt();
} else {
String str = scanner.next();
if (str.equalsIgnoreCase("quit")) {
break; // <-- end the loop.
}
System.out.printf("The value '%s' is not an int (quit to stop).%n", str);
}
}
System.out.printf("The sum of your %d values is %d.%n", count, sum);
// scanner.close(); // <-- Really Bad Idea
Scanner Scanner=新的扫描仪(System.in);
//System.out.print(“要解析多少个值?”:”;
//int numValues=scanner.nextInt();
System.out.println(“请输入要求和的值(键入quit停止)”;
int sum=0;//您只需将每个数字存储在arraylist中,然后在获取完数字后对arraylist中的所有元素求和即可。噢!可能我使用了错误的单词,即“命令提示符”是用户在终端窗口输入值。对不起,编程还是很新!这可能是个愚蠢的问题,但我如何将每个数字存储在数组中?我知道如何迭代数组并以这种方式获取总数,但如何存储数字?移动扫描器。在循环外关闭以消除错误您的代码如下运行:您输入一些内容;扫描器测试是否有下一行、下一行和下一个int,然后您打印一些内容,然后扫描器关闭。然后,在扫描器关闭后,您再次测试它是否有下一行。这是异常的来源。您可以将每个数字存储在arraylist中,然后在获取完数字后对arraylist中的所有元素求和。噢!也许我用错了词,我所说的“命令提示符”是用户在终端窗口输入值。对不起,编程还是很新!这可能是个愚蠢的问题,但我如何将每个数字存储在数组中?我知道如何迭代数组并以这种方式获取总数,但如何存储数字?移动扫描器。在循环外关闭以消除错误。您的代码如下运行:您输入某个内容;扫描器测试是否有下一行、下一个内容和下一个整数,然后您打印某个内容,然后扫描器关闭。然后,在扫描器关闭后