public class chap7p4 { public static void main(String[] args) { int[] heights = { 33, 45, 23, 43, 48, 32, 35, 46, 48, 39, 41, }; printArray(heights); System.out.println("Average is " + findAverage(heights)); // this is where I get the error } public static void printArray(int[] array) { for (int eachNum : array) { System.out.println(eachNum + " "); } } public static void findAverage(int[] array) { int average = 0; int total = 0; for (int i = 0; i <= array.length; i++) { total = total + array[i]; } average = total / array.length; System.out.println(average); } }
Eu recebo este erro
"Exception in thread "main" java.lang.Error: Unresolved compilation problem: The operator + is undefined for the argument type(s) String, void"
findAverage
tem um tipo de retorno inválido. Altere o tipo de retorno do método para retornar um valor int
public static int findAverage(int[] array) { ... return total / array.length; }
Seu método findAverage(heights)
deve retornar um valor para ser aplicado ao operador binário +
, que recebe dois operantes.
você não pode fazer
String
+ void
findAverage
método findAverage
retorna void
Alterar o tipo de retorno do seu método findAverage()
isto é, void findAverage
a void findAverage
para void findAverage
a int findAverage
public static int findAverage(int[] array) { int total = 0; for (int i = 0; i <= array.length; i++) { total = total + array[i]; } return total / array.length; }
Return
tipo de findAverage
método findAverage
não deve ser vazio. Deve ser inteiro para o seu código. Você não deve imprimir o valor da média no mesmo método que você está chamando no método main.
Também aqui o argumento é do tipo int, e Operators like (*, +, ..) não funcionará para o tipo de argumento void e int, portanto, altere o tipo de argumento ou o tipo de retorno, conforme mencionado acima.