int value = 0;
int max = value;
int min = max;
Scanner scan = new Scanner(System.in);
while (value != -1) {
System.out.print("Value: ");
value = scan.nextInt();
if (min > value) {
min = value; }
if (max < value) {
max = value; }
}
System.out.println("Min = " + min);
System.out.println("Min = " + min);
您将循环转换为永无止境的循环,并在检测到终止号时添加break
:
Scanner scan = new Scanner(System.in);
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (;;) { // never-ending loop
System.out.print("Value: ");
if (! scan.hasNextInt()) {
System.out.println("** Invalid input **");
scan.nextLine(); // discard invalid input
continue; // loop back to prompt again
}
int value = scan.nextInt();
if (value == -1) // termination number
break;
if (value < min)
min = value;
else if (value > max)
max = value;
}
System.out.println("Min = " + min);
System.out.println("Max = " + max);
还修正了:
min
和
max
的
min
可能总是0
)扫描器
输入(因此程序不会在错误输入时出现异常)最大值
(打印最小值
两次)最少频率 - 从 System.in 输入的 10 个整数列表中输出出现频率最低的整数及其出现计数。如果列表中的多个整数出现频率最低,则输出任何出现频率最低的整数。将类命名为“最少频率”。您可以假定所有 10 个整数都在 -100 到 100(包括 -100 到 100)的范围内。 我让它要求用户输入10个整数并将其放入数组中。我还让它计算输入数字的出现次数并将其存储在另一个数组中。我一直坚持寻找
该程序每秒接收大约50000个数字。 在任何给定时刻,我都需要计算最后一秒到达的值(数字)的最小值、最大值和平均值(关于给定时刻)。 有没有办法不用数组或列表(缓冲区)来存储到达的数字和计算结果? 如果我需要使用缓冲区,那么实现这一点的有效方法是什么? (请注意,缓冲区中的数字也必须不时有效地删除)
问题内容: 我有这个代码: 它显然不会编译,因为在匿名类中需要使用final。但是我不能将它定下来,因为事实并非如此。你会怎么做?一种解决方案是复制它,但我认为可能会有更好的方法: 编辑 只是为了清楚起见,为了示例,我在这里使用了Runnable,问题实际上是关于匿名类的,它可以是其他任何东西。 问题答案: 我认为您的解决方案是最简单的方法。 另一种选择是将内部类的创建重构为一个为您完成的工厂函数
解决了 我想问用户他想输入多少个整数,然后读取所有数字,同时跟踪他们输入的最大和最小数字。然后打印最大和最小数字。 我正在考虑将最大值和最小值设置为第一个输入的数字,然后在for循环中读取下一个数字,并使用更大/更小的数字更改最大值和最低值。但是,它只打印用户输入的第一个数字。有人能帮我吗?非常感谢。 代码:
我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!
我正在编写一个java程序来获取输入的数字的最大值、最小值和总数。如果输入为(-1),我想终止,但在编程中,我编写了它,将-1指定为最小值。我应该怎么做才能避免它? } 输出学生人数:3总分:60最高分:30最低分:0平均分:20.0 有人能帮我修一下吗? 谢谢你的时间。