如何从Java中读取扫描仪的不同输入?

时间:2016-10-09 16:31:17

标签: java loops java.util.scanner

我需要获得各种积分输入,然后在输入-1时,程序应显示所有输入的最大,最小,总和,所有输入的值的数量,以及输入的所有值的平均值。我已经开始循环以获取各种输入,但找不到合适的方式来读取它们然后使用它们。我在互联网上到处搜索。

import java.util.Scanner;

public class Exercise16 {
    public static void main(String[] args) {

        Scanner s = new Scanner(System.in);

        System.out.println("Please enter a Positive integer or -1 to quit.");

        while (!s.nextLine().equals("-1")) {
            System.out.println("Please enter a Positive integer or -1 to quit.");
        }
    }
}

3 个答案:

答案 0 :(得分:0)

s.nextLine()读取您的输入

您应该将其保存到变量中。

还使用do-while来防止复制的打印语句

Scanner s = new Scanner(System.in);
String in;  // where to save next input value 

do {
    System.out.println("Please enter a Positive integer or -1 to quit.");
    in = s.nextLine();
    // TODO: parseInt, check for positive number 
}  while (!in.equals("-1"));

如果要跟踪分钟和最大值,则需要两个额外的整数值。

如果您想跟踪平均值,则需要一个列表。

祝你好运

答案 1 :(得分:0)

首先需要从命令行读取整数。为此你必须使用

s.nextInt();

一旦你得到这个,你必须获得最大和最小的数字,你可以使用2个变量获得这些。

对于平均值,您可以存储用户要求输入的总和次数,还有2个变量。无需在列表或其他存储中存储元素。

如果您想要查看输入的数字,而不是必须存储其他数据。

用于存储用途:

List<Integer> numbers = new ArrayList<Integer>();

要添加号码,您可以使用List的添加方法。

public static void main2() {
        Integer laregst = Integer.MIN_VALUE;
        Integer smallest = Integer.MAX_VALUE;
        Integer sum = 0;
        Integer count =0 ;
        Scanner s = new Scanner(System.in);
        int temp = s.nextInt();
        while (temp != -1) {
            if(temp > laregst){
                laregst = temp;
            }

            if(temp < smallest){
                smallest = temp;
            }

            sum += temp;
            count += 1;

            System.out.println("Please enter a Positive integer or -1 to quit.");
            temp = s.nextInt();
        }
        System.out.println("Largest : "+(count == 0?"NA":laregst)+" Smallest : "+(count == 0?"NA":smallest)+" Mean : "+(count == 0 ? "NA" : ((sum *1.0/count))));
    }

答案 2 :(得分:-1)

如果您不想在同一行中读取多重整数值,则可以使用s.nextInt()每次读取一个整数值