Rookie Java 问题 - Scanner、int 和用户输入

Rookie Java question - Scanner, int and user input

提问人:Hans Pilgaard 提问时间:2/10/2021 最后编辑:PM 77-1Hans Pilgaard 更新时间:2/10/2021 访问量:33

问:

你好,Overflowers!

我刚开始使用 Java,想创建一个小程序,可以在其中输入 5 个数字并打印出总和和平均值。 该程序运行并完成它的工作,但我觉得必须有一种比我所做的更聪明的方法/方式。

import java.util.Scanner;
public class Calc {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.println("5 random numbers");

        int num1 = input.nextInt();
        int num2 = input.nextInt();
        int num3 = input.nextInt();
        int num4 = input.nextInt();
        int num5 = input.nextInt();
        int sum = num1 + num2 + num3 + num4 + num5;
        int avg = (num1 + num2 + num3 + num4 + num5)/5;
        System.out.println("Sum is" + sum + " and the average is " + avg);```

是否可以在一行或其他东西中声明所有数字?

整数 java.util.scanner

评论

0赞 PM 77-1 2/10/2021
您可以使用数组和循环。此外,您不需要计算两次总和。
0赞 Hans Pilgaard 2/10/2021
啊,我明白了..Ima do sum/5 代替。很有道理,非常感谢!
0赞 Kevin Anderson 2/11/2021
您实际上不需要五个单独的变量来表示五个输入(除非您想在最后将它们打印出来,或者以后需要它们用于其他事情),只是(也许还有一个变量来接收输入数字);只需在收到每个输入后立即添加即可。sumsum

答:

0赞 Phenomenal One 2/10/2021 #1

您可以使用 .试试这个。在这里,您需要在一行中提及所有数字。BufferedReader

前任:1 2 3 4 5

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] values = line.split(" ");
int[] arr = new int[values.length];
int sum=0;
for (int i = 0; i < values.length; i++) {
   arr[i] = Integer.parseInt(values[i]);
   sum+=arr[i];
}
double avg = sum/arr.length;
System.out.println("Sum is" + sum + " and the average is " + avg);

评论

0赞 Hans Pilgaard 2/10/2021
好的,我要试试这个,谢谢你的快速回答!