我需要获得各种积分输入,然后在输入-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.");
}
}
}
答案 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()每次读取一个整数值