【问题标题】:How to return two values of same datatype from a single function in java? [duplicate]如何从java中的单个函数返回两个相同数据类型的值? [复制]
【发布时间】:2025-11-30 16:45:02
【问题描述】:

我想从用于从用户获取输入的方法返回两个值,并且在获得输入后,我必须在另一个方法中将这些值作为参数/参数返回。 我尝试使用“return a,b”,但它不起作用。 请建议我解决方案.... ` 公共静态 int fnInput(){

    Scanner sc1 = new Scanner(System.in);

    System.out.println("Enter 1st Number:");
    int a = sc1.nextInt();

    System.out.println("Enter 2nd Number:");
    int b =  sc1.nextInt();
    
    return a,b;

} `

我也尝试使用此数组方法,但此方法也不起作用并返回值 ` 公共静态 int fnInput(){

    Scanner sc1 = new Scanner(System.in);

    System.out.println("Enter 1st Number:");
    int a = sc1.nextInt();

    System.out.println("Enter 2nd Number:");
    int b =  sc1.nextInt();
    
    return new int[] {a ,b };

} `

【问题讨论】:

  • public static int改成public static int[],所以返回类型是一个数组。

标签: java return-value


【解决方案1】:

在这种情况下,您的函数的返回类型应该是int 的数组

public static int[] fnInput(){

    Scanner sc1 = new Scanner(System.in);

    System.out.println("Enter 1st Number:");
    int a = sc1.nextInt();

    System.out.println("Enter 2nd Number:");
    int b =  sc1.nextInt();
    
    int[] result = {a ,b};
    return result;
}

【讨论】:

    【解决方案2】:

    你必须把int[]作为你函数的返回类型:

    public static int[] fnInput(){ Scanner sc1 = new Scanner(System.in);
    
        System.out.println("Enter 1st Number:");
        int a = sc1.nextInt();
    
        System.out.println("Enter 2nd Number:");
        int b =  sc1.nextInt();
        sc1.close(); // You should close Scanner objects when you're done with them
        return new int[] {a ,b };
    
    }
    

    【讨论】:

    • 关闭扫描仪对象是个好习惯。但是,这里的扫描仪将超出范围,并且会在函数结束时自动从内存中删除(在下一行)!