import java.util.Scanner;
public class InputLoop
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter an integer to continue or a non integer to finish");
while (scan.hasNextInt())
{
System.out.println("Enter an integer to continue or a non integer to finish");
int value = scan.nextInt();
System.out.print("user: ");
}
scan.next();
{
System.out.println ("You entered");
System.out.println ();
}
}
}
如果它表示'你输入',我必须输入多少个整数,例如'3',然后将整数加在一起,例如'56'。我不知道该怎么做,我该如何实现呢?
答案 0 :(得分:4)
每次用户输入整数时,保持List<Integer>
并添加到此列表。因此,添加的整数数量仅为list.size()
。根据您当前正在进行的操作,无法访问用户的旧输入。
您也可以使用存储总计和计数的变量(在这种情况下可以正常工作),但在我看来,如果您决定更新/使用List
方法,将为您提供更大的灵活性修改这段代码,作为程序员,你应该记住这一点。
List<Integer> inputs = new ArrayList<Integer>();
while (scan.hasNextInt()) {
...
inputs.add(scan.nextInt());
}
...
答案 1 :(得分:2)
只需保留名为count
的变量和名为sum
的变量。
并将while
循环中的代码更改为:
int value = scan.nextInt();
sum += value;
count++;
最后,您可以在while
循环结束后输出。
顺便说一句,你不需要在scan.next()
之后放置那些花括号{};
它们是无关的,并且将始终独立于scan.next()
;
所以只需将其更改为:
scan.next(); //I presume you want this to clear the rest of the buffer?
System.out.println("You entered " + count + " numbers");
System.out.println("The total is " + sum);
答案 2 :(得分:0)
有一个count变量,在main
的开头声明并递增它。
你也可以用同样的方式保存一个和变量。
while (scan.hasNextInt())
{
System.out.println("Enter an integer to continue or a non integer to finish");
int value = scan.nextInt();
count++;
sum += value;
System.out.print("user: ");
}
scan.next();
{
System.out.println ("You entered");
System.out.println (count);
}
答案 3 :(得分:0)
对于您想要输出的内容,您无需保留用户输入的历史记录。您只需要一个运行总计和一个计数。您也不需要对scan.next()
进行最后一次通话,也不需要将最后println
次来电放在一个单独的区块中。
public class InputLoop
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter an integer to continue or a non integer to finish");
int total = 0;
int count = 0;
while (scan.hasNextInt())
{
System.out.println("Enter an integer to continue or a non integer to finish");
int value = scan.nextInt();
total += value;
++count;
System.out.print("user: ");
}
System.out.println ("You entered " + count + " values with a total of " + total);
}
}