java中最小和最大的。否则如果?

时间:2013-04-12 16:21:43

标签: java if-statement

我必须制作一个程序,告诉你5个数字中最大和最小的数字,并且我在输出时保持最小= 0和最大= 0。我还没有添加评论或类似的东西,我已经尝试了其他如果它正在工作(惊讶我有其他工作)。有人可以帮我这个。我不应该对此有所帮助,但我无法弄清楚这一点。

public class int_big_small {
    public static void main(String args[]){

        int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
        int largest = 0, smallest = 0;

            if(num1 > num2){
                num1 = largest;
                num2 =  smallest;
            }else{
                num2 = largest;
                num1 = smallest;
            }

            if(num3>largest){
                num3 = largest;
            }
            if(num3<smallest)
                num3 = smallest;
            if(num4>largest){
                num4 = largest;
            }
            if(num4<smallest)
                num4 = smallest;

            if(num5>largest){
                    num5 = largest;
                }
                if(num5<smallest)
                    num5 = smallest;



            System.out.println("the smallest number is " + smallest + " and the largest is " + largest);
    }
}

3 个答案:

答案 0 :(得分:2)

您的作业都是相反的顺序 - 它们应该是smallest = whatever,而不是whatever = smallest

这也迫切需要进行循环。

int[] nums = new int[] {num1, num2, num3, num4, num5};
int smallest = nums[0];
int largest = nums[0];
for(int i = 1; i < nums.length; i++) {
    if(nums[i] < smallest) {
        smallest = nums[i];
    }
    if(nums[i] > largest) {
        largest = nums[i];
    }
}

smallestlargest初始化为您的数字列表中的有效整数 - 将其初始化为0将导致smallest等于0时你结束了。 (唯一不会导致问题的默认值是smallest = Integer.MAX_VALUE; largest = Integer.MIN_VALUE;

答案 1 :(得分:1)

public int min(int a, int b) {
    if(a > b) return b;
    return a;
}

public int max(int a, int b) {
    if(a > b) return a;
    return b;
}

int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
int largest = num1, smallest = num1;

smallest = min(min( min(num1, num2) , min(num3, num4)), num5);
largest  = max(max( max(num1, num2) , max(num3, num4)), num5);

答案 2 :(得分:1)

如果您正在学习 Java,请使用带有数组和循环的解决方案。如果你使用 Java,可以用3行完成:

List<Integer> list = Arrays.asList(num1, num2, num3, num4, num5);
int smallest = Collections.min(list);
int largest  = Collections.max(list);