Java 不使用数组查找给定整数的第二大数目

Java 不使用数组查找给定整数的第二大数目,java,drjava,Java,Drjava,使用if循环,我的任务是根据用户提供的数字,将最大和第二大整数放入一对,将最小和第二大整数放入一对 我尝试了几种不同的if条件,虽然我的程序可以正确地找到第二个最小的整数,但如果我应用相同的逻辑(使用反大于/小于符号),我不会得到正确的答案 numN = keyboard.nextInt(); if (numN > numL1){ numL1 = numN; } if (n

使用if循环,我的任务是根据用户提供的数字,将最大和第二大整数放入一对,将最小和第二大整数放入一对

我尝试了几种不同的if条件,虽然我的程序可以正确地找到第二个最小的整数,但如果我应用相同的逻辑(使用反大于/小于符号),我不会得到正确的答案

           numN = keyboard.nextInt();
           if (numN > numL1){
              numL1 = numN;
           }

           if (numN < numS1){
              numS1 = numN; 
           }
           else if (numN < numS2 && numS2 > numS1){
              numS2 = numN;
           }
           else if (numN > numL2 && numL2 < numL1){
              numL2 = numN;
           }
numN=keyboard.nextInt();
如果(numN>numL1){
numL1=numN;
}
如果(numNnumS1){
numS2=numN;
}
否则如果(numN>numL2&&numL2
如果用户输入四个数字1,2,3,4

实际结果:最大和最小对:(4,4)(1,2)


所需结果:最大和最小对:(4,3)(1,2)

您可以按如下方式执行此操作:

int max = Integer.MIN_VALUE, secondMax = Integer.MIN_VALUE, min = Integer.MAX_VALUE, secondMin = Integer.MAX_VALUE;

    int input = keyboard.nextInt();
    if (input > max) {
        secondMax = max;
        max = input;
    } else if (input > secondMax) {
        secondMax = input;
    }
    if (input < min) {
        secondMin = min;
        min = input;
    } else if (input < secondMin) {
        secondMin = input;
    }
int max=Integer.MIN\u值,secondMax=Integer.MIN\u值,MIN=Integer.max\u值,secondMin=Integer.max\u值;
int input=keyboard.nextInt();
如果(输入>最大值){
secondMax=max;
最大值=输入;
}否则如果(输入>秒最大值){
secondMax=输入;
}
如果(输入<分钟){
第二分钟=分钟;
最小值=输入;
}否则如果(输入<秒分钟){
第二分钟=输入;
}

是否没有阵列?制造漏洞
java.util.List l=new java.util.ArrayList/Vector/Stack/LinkedList()
还有,为什么一开始就禁止你使用数组?教授的规则,不确定为什么不允许我们使用