Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的扫描仪读取不同的输入?_Java_Loops_Java.util.scanner - Fatal编程技术网

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

如何从Java中的扫描仪读取不同的输入?,java,loops,java.util.scanner,Java,Loops,Java.util.scanner,我需要获得各种积分输入,然后当输入-1时,程序应显示最大值、最小值、所有输入值的总和、所有输入值的数量以及所有输入值的平均值。我已经开始了一个循环来获取各种输入,但找不到合适的方法来读取它们,然后再使用它们。我在互联网上到处搜索 import java.util.Scanner; public class Exercise16 { public static void main(String[] args) { Scanner s = new Scanner(Syst

我需要获得各种积分输入,然后当输入
-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.");
        }
    }
}
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"));
如果要跟踪最小值和最大值,则需要另外两个整数值

如果你想追踪平均值,你需要一个列表


祝您好运

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

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

s.nextInt();
一旦你得到这个,你必须得到最大和最小的数字,你可以用2个变量得到它们

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

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

储存使用:

List<Integer> numbers = new ArrayList<Integer>();
List number=new ArrayList();
对于添加编号,您可以使用列表的添加方法

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))));
    }
publicstaticvoidmain2(){
整数laregst=整数.MIN_值;
最小整数=整数的最大值;
整数和=0;
整数计数=0;
扫描仪s=新的扫描仪(System.in);
int temp=s.nextInt();
而(温度!=-1){
如果(温度>最大值){
laregst=温度;
}
如果(温度<最小值){
最小值=温度;
}
总和+=温度;
计数+=1;
System.out.println(“请输入一个正整数或-1退出”);
temp=s.nextInt();
}
System.out.println(“最大:”+(计数=0?“NA”:最大值)+“最小值:”+(计数=0?“NA”:最小值)+“平均值:”+(计数=0?“NA”:(总和*1.0/计数)));
}

所以这不是一个“做作业”的地方。但请考虑实际存储用户输入的字符串(ArrayList?)。使用s.nextInt()并跟踪输入的每个数字[最大、最小和平均值]。如果我记得正确的话,还有一个al.so
.nextInt()
.nextDouble()
等等,用于所有基本数据类型,这些基本数据类型可以将您的数据整齐地解析为此类格式,或者等待您为该数据类型使用正确的格式。有,但对于初学者,他们没有意识到在使用上述方法时不会使用换行符