创建一个包含2个整数作为参数的方法

时间:2014-08-10 13:15:34

标签: java methods

我正在练习方法,问题是:

  

创建一个方法getMax(),其中包含2个整数作为参数,返回更高的值

这里没问题,但下一部分对我来说有点棘手:

  

创建一个Java程序,它从控制台读取3个整数,并使用方法getMax()

返回3个中的最高者

这是我到目前为止所拥有的。我有一个问题,我创建的方法是使用2个变量但是在main方法中我必须使用3个整数。
为什么方法会计算它,因为我只为它分配了1 IF和1 ELSE操作。

import java.util.Scanner;

public class zadacha2 {

    public static int getMax(int num1, int num2) {
        if (num1 > num2)
            return num1;
        else
            return num2;
    }

    public static void main(String[] args) {
        int num1, num2, num3;
        System.out.println("Enther the num1, num2 and num3 variables");
        Scanner input = new Scanner(System.in);
        num1 = input.nextInt();
        num2 = input.nextInt();
        num3 = input.nextInt();
        System.out.println("the bigger value of the two is:" + getMax(num1, num2, num3));
    }
}

2 个答案:

答案 0 :(得分:3)

由于您已将getMax()声明为public static int getMax(int num1, int num2),因此无法向其传递三个值。因此,您需要比较第一个和第二个数字,然后将较高的数字与第三个数字进行比较:getMax(getMax(num1, num2), num3)

答案 1 :(得分:1)

使用此方法最多可以获得3个数字:

int max12 = getMax(num1, num2); // max of num1 and num2
int max = getMax(max12, num3); // get max from (max of 1 and 2) and num3

所以你可以写成一行:

int max = getMax(getMax(int num1, int num2), num3);

以下是完整的代码:

import java.util.Scanner;

public class zadacha2 {

    public static int getMax(int num1, int num2) {
        if (num1 > num2)
            return num1;
        else 
            return num2;
    }

    public static void main(String[] args) {
        int num1, num2, num3;
        System.out.println("Enther the num1, num2 and num3 variables");
        Scanner input = new Scanner(System.in);
        num1 = input.nextInt();
        num2 = input.nextInt();
        num3 = input.nextInt();
        System.out.println("the bigger value of the two is:" + getMax(num1, getMax( num2, num3)));
    }

}