Java if语句作业

Java if语句作业,java,if-statement,Java,If Statement,我的作业要求我找到4个输入数字中最大的2个 我尝试了一个if语句,但我认为我走错了方向。我必须使用if语句或while循环。我如何继续 if ((a>b && b>c && c>d)||(a>b && b>d && d>c)){ System.out.println("max1 is : " + a); System.out.println("max2 is : " + b);}

我的作业要求我找到4个输入数字中最大的2个

我尝试了一个if语句,但我认为我走错了方向。我必须使用if语句或while循环。我如何继续

if ((a>b && b>c && c>d)||(a>b && b>d && d>c)){
    System.out.println("max1 is : " + a);
    System.out.println("max2 is : " + b);}   
else  if ((b>a && a>c && c>d)||(b>a && a>c && d>c) ){
    System.out.println("max1 is : " + b);
    System.out.println("max2 is : " + a);}
 if ((c>a && a>b && b>d)||(c>a && a>b && d>b)){
    System.out.println("max1 is : " + c);
    System.out.println("max2 is : " + a);}

使用java基元数组:

int[] num = {a, b, c, d};

Arrays.sort(num);

System.out.println("Largest is : " + num[3]);
System.out.println("Second Largest is : " + num[2]);

//最大的两个数字将占据数组中最后两个位置3和2。

只需将参数放入一个数组中,对该数组排序并显示最后的元素

 public static void main(String[] args) {
        dispayMax(5,  -13, 7, 88);
    }

    public static void dispayMax(int a, int b, int c, int d){
        int[] array = {a, b, c, d};
        Arrays.sort(array);
        int length = array.length;
        System.out.println("max1 is : " + array[length -2]);
        System.out.println("max2 is : " + array[length -1]);
}

您可以使用集合来避免多次写入此类
条件。 在这种情况下,集合或数组可以派上用场

min1-最小数字,min2-第二个最小数字。 其初始值设置为可能的最大整数值
在for循环中,对于每个元素,如果元素小于min1值,则将当前min1值指定给min2,并将min1设置为元素本身。 如果元素值小于min2而不是min1,则将其值指定给min2,min1保持不变

使用它的方法之一是:

int min1 = Integer.MAX_VALUE, min2 =Integer.MAX_VALUE;

        int[] arr = {a,b,c,d}; // created an array with the four elements
        for(int i=0;i<arr.length;i++) {
            if(min1>arr[i]) { //array is minimising the checks to be written 
                min2=min1;
                min1=arr[i];
            }else if(min2>arr[i]) {
                min2=arr[i];
            }
        }
int min1=Integer.MAX\u值,min2=Integer.MAX\u值;
int[]arr={a,b,c,d};//创建了一个包含四个元素的数组
对于(inti=0;iarr[i]){//数组正在最小化要写入的检查
min2=min1;
min1=arr[i];
}else if(min2>arr[i]){
min2=arr[i];
}
}

只有6种可能性:a&b、a&c、a&d、b&c、b&d、c&d。如果您的赋值指定了if语句,那么使用if语句对它们进行强制检查应该不会太难。我能说的最好方法是将它们全部收集到数组或列表中,然后对该列表进行排序,选择前两个,将4个数字中的每一个插入一个数组,然后调用Arrays.sort(my_array)。然后你可以只取数组的前两个元素的位置0和1(这种方法需要允许你使用java.util.array库)。azurefrog,是的,我想我会这样做,我的问题是我试图像(a&b和b&a)那样对输出进行排序等等,这让我感到困惑和复杂的东西我们还没有使用arrys,所以它应该只使用基本的if,
import java.util.Arrays;

public class Homework{

     public static void main(String []args){

        int myArray[] = {4, 10, 1, 100}; //insert your 4 numbers

        Arrays.sort(myArray);

        System.out.println("The max is: " + myArray[3]);
        System.out.println("The 2nd max is: " + myArray[2]);
     }
}