多次从用户处获取五个输入的最大值和最小值 package.com公司; 导入java.util.Scanner; 班级比较 { 整数最大值; 最小整数; 公共无效最大值(整数) { 如果(max==null) max=num; 否则,如果(数值>最大值) max=num; } 公共无效最小值(整数) { if(min==null) min=num; 否则如果(num

多次从用户处获取五个输入的最大值和最小值 package.com公司; 导入java.util.Scanner; 班级比较 { 整数最大值; 最小整数; 公共无效最大值(整数) { 如果(max==null) max=num; 否则,如果(数值>最大值) max=num; } 公共无效最小值(整数) { if(min==null) min=num; 否则如果(num,java,class,methods,max,min,Java,Class,Methods,Max,Min,我想计算用户五个输入的最大值和最小值,我设法得到最大值和最小值,但如果我测试两组,我得不到正确的最大值,而是得到以前的最大值作为我的最大值。如何以最简单的方式获得最大值 最小的变化是在第一个循环中移动比较,这样每次输入新的“集合”时,它都会找到新的最大值(和最小值) package com.company; import java.util.Scanner; class Compare { Integer max; Integer min; public void

我想计算用户五个输入的最大值和最小值,我设法得到最大值和最小值,但如果我测试两组,我得不到正确的最大值,而是得到以前的最大值作为我的最大值。如何以最简单的方式获得最大值


最小的变化是在第一个循环中移动
比较
,这样每次输入新的“
集合
”时,它都会找到新的
最大值
(和
最小值

package com.company;

import java.util.Scanner;

class Compare
{
    Integer max;
    Integer min;

    public void max(int num)
    {
        if (max == null)
            max = num;
        else if(num > max)
            max = num;
    }

    public void min(int num)
    {
        if (min == null)
            min = num;
        else if(num < min)
            min = num;
    }
}
class Main
{
    public static void main(String args[])
    {
        Compare compare = new Compare();
        Scanner input = new Scanner(System.in);

        int sets = input.nextInt();
        for (int i = 0; i < sets ; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                int num_main = input.nextInt();
                compare.max(num_main);
                compare.min(num_main);
            }
            System.out.println(compare.max);
            System.out.println(compare.min);
        }
    }
}
for(int i=0;i
当您在此循环之前进行
比较时,它将保留输入的每组数字的值。

您希望它在输入的每一组数字中找到
max
min

在移动到下一个循环之前,您必须还原
compare
对象。在代码中修改一点:

package com.company;

import java.util.Scanner;

class Compare
{
    Integer max;
    Integer min;

    public void max(int num)
    {
        if (max == null)
            max = num;
        else if(num > max)
            max = num;
    }

    public void min(int num)
    {
        if (min == null)
            min = num;
        else if(num < min)
            min = num;
    }
}
class Main
{
    public static void main(String args[])
    {
        Compare compare = new Compare();
        Scanner input = new Scanner(System.in);

        int sets = input.nextInt();
        for (int i = 0; i < sets ; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                int num_main = input.nextInt();
                compare.max(num_main);
                compare.min(num_main);
            }
            System.out.println(compare.max);
            System.out.println(compare.min);
        }
    }
}
for (int i = 0; i < sets ; i++)
{
    Compare compare = new Compare();
    //...
    //as you were     
}

考虑
无限循环
和使其终止的条件。
for (int i = 0; i < sets ; i++)
{
    for (int j = 0; j < 5; j++)
    {
        int num_main = input.nextInt();
        compare.max(num_main);
        compare.min(num_main);
    }
    System.out.println(compare.max);
    System.out.println(compare.min);
    compare.max = compare.min = null;
}