如何在 Java 中升序/降序整数



是的,在我来这里之前,我确实做过研究(包括这个网站,MSDN和其他一些),但没有一个真正帮助我(刚刚开始编码),我仍然不明白。我正在尝试制作一个 java 程序,该程序将您输入的 3 个整数从大到小放入。我遇到的麻烦是,无论哪个数字最高,它只会在控制台中显示该数字并摆脱其他数字。任何人都可以就我做错了什么提供任何启示或提供任何建议吗?我将不胜感激。

这是我的代码

import javax.swing.*;
public class sortingintegers {
    public static void main(String[] args) {

        // TODO Auto-generated method stub
                String variable1, variable5;
                int variable2, variable3, variable4;        
                variable1 = JOptionPane.showInputDialog(null, "Enter the first integer? ", 
                        "Exercise3_8", JOptionPane.QUESTION_MESSAGE);       
                variable2 = Integer.parseInt(variable1);    
                variable1 = JOptionPane.showInputDialog(null, "Enter the second integer? ", 
                        "Exercise3_8", JOptionPane.QUESTION_MESSAGE);       
                variable3 = Integer.parseInt(variable1);
                variable1 = JOptionPane.showInputDialog(null, "Enter the third integer? ", 
                        "Exercise3_8", JOptionPane.QUESTION_MESSAGE);
                variable4 = Integer.parseInt(variable1);

                //First Phase
                if (variable2> variable3 && variable2> variable4) {             
                    System.out.println(variable2);
                }
                else if (variable3> variable2 && variable3> variable4) {                
                    System.out.println(variable3);
                }
                else if (variable4> variable2 && variable4> variable3) {                
                    System.out.println(variable4);
                }

                //Second Phase
                if (variable2> variable3 && variable2> variable4) {             
                    System.out.println(variable2);
                }
                else if (variable3> variable2 && variable3> variable4) {                
                    System.out.println(variable3);
                }
                else if (variable4> variable2 && variable4> variable3) {                
                    System.out.println(variable4);
                }

                //Third Phase
                if (variable2> variable3 && variable2> variable4) {             
                    System.out.println(variable2);
                }

                else if (variable3> variable2 && variable3> variable4) {                
                    System.out.println(variable3);
                }
                else if (variable4> variable2 && variable4> variable3) {                
                    System.out.println(variable4);
                }
    }
}

只需将数字存储为数组或列表(每当您想调用 var1、var2、var3 等时,请问问自己使用数组是否正确),然后对它们进行排序。

int[] nums = new int[3];
for (int i = 0; i < nums.length; i++) {
    nums[i] = JOptionPane.showInputDialog(null, "Enter integer " + i, 
                    "Exercise3_8", JOptionPane.QUESTION_MESSAGE);
}
Arrays.sort(nums);
for (int i = 0; i < nums.length; i++) {
    System.out.println(nums[i]);
}

作为初学者,我相信你还没有了解数组或排序算法。 您正在查找第一个数字的正确轨道上,但是您需要使用嵌套的 if 语句来查找第二个和第三个数字。

因此,让我们以您的第一个if语句为例:

if (variable2> variable3 && variable2> variable4) {             
    System.out.println(variable2);
    //Inside here, you know that variable 2 is first.  So is variable3 or variable4 second?
}

要确定哪个变量是第二个变量,请使用将变量 3 与变量 4 进行比较的 if 语句。 在该 if 语句中,您知道哪个变量是第二个变量,然后哪个变量是第三个变量,因为只剩下一个变量了。

完成变量 2 在第一个的情况后,以类似的方式处理变量 3 在前,变量 4 在前的情况。

感谢所有帮助过我的人,尝试制作一个数组,但我仍然需要努力。这就是我最终所做的,它奏效了。

import javax.swing.JOptionPane;
public class sortingintegers {
    private static char[] var1;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String integer1 = JOptionPane.showInputDialog("Enter the first integer:");
        String integer2 = JOptionPane.showInputDialog("Enter the second integer:");
        String integer3 = JOptionPane.showInputDialog("Enter the third integer:");
        int num1 = Integer.parseInt(integer1);
        int num2 = Integer.parseInt(integer2);
        int num3 = Integer.parseInt(integer3);
        if (num1 >= num2 && num1 >= num3 && num2 >= num3){          
            String var1 =(" The sorted numbers are "+ num3+ " "+ num2+ " " +num1);
            JOptionPane.showConfirmDialog(null,  var1);
            System.out.print(var1);
        }
        if (num1 >= num3 && num3 >= num2 && num1 >= num2){
            String var2 =(" The sorted numbers are "+ num2+ " "+ num3+ " " +num1);
            JOptionPane.showConfirmDialog(null,  var2);
            System.out.print(var2);
        }
        if (num2 >= num3 && num2 >= num1 && num3 >= num1){
            String var3 =(" The sorted numbers are "+ num1+ " "+ num3+ " " +num2);
            JOptionPane.showConfirmDialog(null,  var3);
            System.out.print(var3);
        }
        if (num2 >= num1 && num2>= num3 && num1 >= num3){
            String var4 =(" The sorted numbers are "+ num3+ " "+ num1+ " " +num2);
            JOptionPane.showConfirmDialog(null, var4);
            System.out.print(var4);
        }
        if (num3 >= num1 && num3 >= num2 && num1 >= num2){
            String var5 =(" The sorted numbers are "+ num2+ " "+ num1+ " " +num3);
            JOptionPane.showConfirmDialog(null, var5);
            System.out.println(var5);
        }
        if (num3 >= num2 && num3 >= num1 && num2 >= num1){
            String var6 =(" The sorted numbers are "+ num1+ " "+ num2+ " " +num3);
            JOptionPane.showMessageDialog(null, var6);
            System.out.print(var6);
        }   
    }
}

最新更新