有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

方法Java返回不输出消息

问题编号:我不明白为什么在main()中调用此方法时,它不会输出计算出的平均值。编译器会留下一个空白,就是这样。自学Java很有挑战性

问题2:我们是否可以使用“return”语句而不是“System”输出类似(“平均值为”+中间值”)的内容。出来打印'

谢谢

public static double calcAverage(int[] numbers){        // semi-done
    //    Calculate the average value and return it
    double total = 0;
    for (int i = 0; i < numbers.length; i++){
        total = total + numbers[i];
    }
    System.out.printf(" The average of all numbers is: \n", total/numbers.length);
    System.out.println();
    return total/numbers.length;
}

共 (3) 个答案

  1. # 1 楼答案

    我建议您阅读Oracle Java教程

    1. System.out.printf()->;指示由文字和格式说明符组成。仅当格式字符串中有格式说明符时,才需要参数。最终,您可以将其用作System.out.print()

    2. 您的方法返回类型为double->public static double calcAverage(int[] numbers)。所以这个方法总是返回double。如果不更改,它将永远不会返回任何其他类型,如int、String等。如果您想返回类似The average is" + median的内容,意味着您的方法返回类型将是String,只需打印结果值。然后您需要将以下内容更改为public static String calcAverage(int[] numbers)

  2. # 2 楼答案

    1)您没有告诉printf在哪里或如何写入结果。试试System.out.printf(" The average of all numbers is: %f\n", total/numbers.length); //possibly "lf", I'm not a regular Java printf user.

    2)您可以让方法返回一个string而不是一个double-有一些类可以帮助您,比如StringBuffer

  3. # 3 楼答案

    对于第一个问题,您的calcAverage方法返回一个double,这与打印它不同

    以下代码显示了差异:

    int[] list = { 1, 2, ..., 5};
    calcAverage(list); // We did nothing with the return value... so we lost it
    double avg = calcAverage(list); // We assigned the result.. did not lost it :)
    // Now we can print the result
    System.out.println("The average of all numbers is: \n" + avg);
    System.out.println("The average of all numbers is: \n" + calcAverage(list)); // Or printing the result value directly
    

    对于第二个问题,如果希望方法返回“平均值为”+中间值,则需要字符串作为返回值。但我不认为有人希望他的calcAverage方法返回字符串(看看上面调用过程、存储结果并全部打印的代码)

    例如:

    public static String calcAverage(int[] numbers){        // Returns a string
        //    Calculate the average value and return it
        double total = 0;
        for (int i = 0; i < numbers.length; i++){
             total = total + numbers[i];
        }
    
        String answer = "The average of all numbers is: \n" + (total / numbers.length);
        return answer;
    }