当前位置: 首页 > 知识库问答 >
问题:

计算用户输入的最小值,同时排除循环终止数(-1)

柴兴贤
2023-03-14
    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);

共有1个答案

宦琪
2023-03-14

您将循环转换为永无止境的循环,并在检测到终止号时添加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);

还修正了:

    minmax
  • 初始化(否则min可能总是0)
  • 验证扫描器输入(因此程序不会在错误输入时出现异常)
  • 打印最大值(打印最小值两次)
  • 缩进(因此代码结构对人类读者清晰可见)
 类似资料:
  • 最少频率 - 从 System.in 输入的 10 个整数列表中输出出现频率最低的整数及其出现计数。如果列表中的多个整数出现频率最低,则输出任何出现频率最低的整数。将类命名为“最少频率”。您可以假定所有 10 个整数都在 -100 到 100(包括 -100 到 100)的范围内。 我让它要求用户输入10个整数并将其放入数组中。我还让它计算输入数字的出现次数并将其存储在另一个数组中。我一直坚持寻找

  • 该程序每秒接收大约50000个数字。 在任何给定时刻,我都需要计算最后一秒到达的值(数字)的最小值、最大值和平均值(关于给定时刻)。 有没有办法不用数组或列表(缓冲区)来存储到达的数字和计算结果? 如果我需要使用缓冲区,那么实现这一点的有效方法是什么? (请注意,缓冲区中的数字也必须不时有效地删除)

  • 问题内容: 我有这个代码: 它显然不会编译,因为在匿名类中需要使用final。但是我不能将它定下来,因为事实并非如此。你会怎么做?一种解决方案是复制它,但我认为可能会有更好的方法: 编辑 只是为了清楚起见,为了示例,我在这里使用了Runnable,问题实际上是关于匿名类的,它可以是其他任何东西。 问题答案: 我认为您的解决方案是最简单的方法。 另一种选择是将内部类的创建重构为一个为您完成的工厂函数

  • 解决了 我想问用户他想输入多少个整数,然后读取所有数字,同时跟踪他们输入的最大和最小数字。然后打印最大和最小数字。 我正在考虑将最大值和最小值设置为第一个输入的数字,然后在for循环中读取下一个数字,并使用更大/更小的数字更改最大值和最低值。但是,它只打印用户输入的第一个数字。有人能帮我吗?非常感谢。 代码:

  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!

  • 我正在编写一个java程序来获取输入的数字的最大值、最小值和总数。如果输入为(-1),我想终止,但在编程中,我编写了它,将-1指定为最小值。我应该怎么做才能避免它? } 输出学生人数:3总分:60最高分:30最低分:0平均分:20.0 有人能帮我修一下吗? 谢谢你的时间。