如何在for循环中找到第二大的数

How to find the second largest number in for loops

public static void main(String[] args) {
    int num;
    int large;
    int small;
    int secondLarge;

    Scanner scan = new Scanner(System.in);
    System.out.print("Input a number: ");
    num = scan.nextInt();
    large = num;
    small = num;
    secondLarge = num;

    for (int x = 9; x > 0; x--) {
        System.out.print("Enter " + x + " more number: ");
        num = scan.nextInt();

        if (num > large) {
            large = num;

        }
        if (num > secondLarge) {
            secondLarge = num;
        }

        if (secondLarge > large) {
            large = secondLarge;

        }
        if (num < small) {
            small = num;

        }

    } System.out.println( large + " is the largest number, " + secondLarge + " is the second largest number and " + small + " is the smallest number!");
}

因此,我尝试输出最大数、第二大数和最小数。我能够获得最小和最大的,但不知道从哪里开始获得第二大的。我认为这会起作用,但它输出同样大的东西。我目前不应该使用数组,因为这是家庭作业。请不要告诉我确切的答案,但一些帮助和提示会很棒!

初始化变量如

int largest=0;
int secondlargest=0;
int smallest=Integer.MAX_VALUE;

条件应该是

if(number>=largest){
    secondlargest=largest;
    largest=number;
}else if(number>secondlargest){
    secondlargest=number;
}
if(number<smallest){
    smallest=number;
}

这是我的解决方案,使用来自 class Math:

的静态方法 max 和 min
    import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
    // write your code here
        int input, largest = 0, secondLargest = 0, smallest = 0;
        for (int i = 0; i < 10; i++) {
            System.out.println("Input an integer number:");
            input = new Scanner(System.in).nextInt();

            secondLargest = Math.min(largest, Math.max(input, secondLargest));
            largest = Math.max(input, largest);
            smallest = Math.min(input, smallest)
        }

        System.out.println("Largest integer number entered was: " + largest);
        System.out.println("Second largest integer number entered was: " + secondLargest);
        System.out.println("Smallest integer number entered was: " + smallest);
    }
}
public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    int max = 0;
    int smax = 0;
    int num = 0;
    while (num != -1) {
        System.out.println("Enter number  Or -1 to Stop:");
        num = in.nextInt();
        if (num >= max) {
            smax = max;
            max = num;
        } 
    }
    
    System.out.println("second max :"+smax);

}