方法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;
}
# 1 楼答案
我建议您阅读Oracle Java教程
System.out.printf()
->;指示由文字和格式说明符组成。仅当格式字符串中有格式说明符时,才需要参数。最终,您可以将其用作System.out.print()
您的方法返回类型为double->
public static double calcAverage(int[] numbers)
。所以这个方法总是返回double。如果不更改,它将永远不会返回任何其他类型,如int、String等。如果您想返回类似The average is" + median
的内容,意味着您的方法返回类型将是String
,只需打印结果值。然后您需要将以下内容更改为public static String calcAverage(int[] numbers)
# 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 楼答案
对于第一个问题,您的
calcAverage
方法返回一个double,这与打印它不同以下代码显示了差异:
对于第二个问题,如果希望方法返回“平均值为”+中间值,则需要字符串作为返回值。但我不认为有人希望他的
calcAverage
方法返回字符串(看看上面调用过程、存储结果并全部打印的代码)例如: