如何在java中提升/下降整数

时间:2014-12-24 02:29:02

标签: java integer

是的,在我来到这里之前,我确实做了研究(包括这个网站,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);
                }

    }

}

3 个答案:

答案 0 :(得分:3)

只需将数字存储为数组或列表(无论何时想要调用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]);
}

答案 1 :(得分:0)

作为初学者,我相信你还没有学过数组或排序算法。您可以找到第一个数字,但是您需要使用嵌套的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?
}

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

在你完成变量2的第一个情况之后,处理变量3为第一个而变量4以类似方式出现的情况。

答案 2 :(得分:0)

感谢所有帮助我的人,尝试制作阵列,但我仍然需要努力。这就是我最终做的事情并且有效。

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);
        }   
    }
}