获取Java中的最大数量

时间:2017-03-02 02:36:05

标签: java

我需要获得最多三个整数,但是当第二个数字小于零时,我的代码不会给出输出。

package main;

import java.util.Scanner;

public class Max {
    public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
    int a=in.nextInt();
    int b=in.nextInt();
    int c=in.nextInt();
    int max;
    if(a>b){
        if(a>c)max =a;
        else max =c;
      } 
    else{
        if(b>c)max=b;
        else max=c;
  System.out.println(max);
        }
    }
}

它通过了其他情况的测试。你能告诉我为什么会这样吗?

5 个答案:

答案 0 :(得分:2)

因为你有println声明的地方。它在第二个条件中,你希望它在if语句之外。

<div class="webstarvideo">
  <video style="width:100%;height:100%" preload="none" class="">
    <source src="I NEED THIS" type="video/mp4"></video>
  <div class="webstarvideodoul">
    <canvas></canvas>
  </div>
</div>

答案 1 :(得分:2)

您的print语句位于else块内,因此只有在进入else分支时才会执行。将它移到else块之外。

public class Max {
    public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
    int a=in.nextInt();
    int b=in.nextInt();
    int c=in.nextInt();
    int max;
    if(a>b){
        if(a>c)max =a;
        else max =c;
    } 
    else{
        if(b>c)max=b;
        else max=c;
        }
    }
    System.out.println(max);
}

答案 2 :(得分:0)

在存储int值的Collections.max()上使用List

package main;

import java.util.Scanner;

public class Max {
    public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    Scanner in = new Scanner(System.in);
    int a= in.nextInt();
    list.add(a);
    int b= in.nextInt();
    list.add(b);
    int c= in.nextInt();
    list.add(c);
    System.out.println("Largest: " + Collections.max(list));
   }
}

答案 3 :(得分:0)

我建议写单独的方法

public int max(int a, int b) {
    return Math.max(a, b);
}

并将其称为

max(a, max(b, c));

这样的代码更清洁

答案 4 :(得分:-1)

将数字输入数组而不是三个单独的变量。然后你可以使用这个方法:

public int getLargest(int[] nums){
    int largest = Integer.MIN_VALUE;
    if(nums.length == 0)
        return -1;
    for(int i : nums){
        if(i > largest)
            largest = i;
    }
    return largest;
}