Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: drate en 22 de Diciembre 2021, 23:19
-
Buenas noches. Estoy haciendo un curso de Java y haciendo una práctica me ha surgido la siguiente duda.
¿Se puede devolver un array como resultado de un método?
Dicho método tendría la siguiente sintaxis:
public static int[] collatz(int n) {
int[]aux= new int[300];
return aux;
}
-
Sí, sin ningún problema.
Los métodos en Java pueden retornar cualquier objeto o dato de tipo primitivo existente.
-
Buenas tardes.
El caso es que cuando intento devolver el array el compilador me dice que un método void no puede retornar ningún valor.
utilizo la siguiente sintaxis:
public static int[] collatz(int n)
he declarado un array dentro
operado con él
pero no me deja devolverlo.
Si me pueden ayudar se lo agradecería. Un saludo y muchísimas gracias.
-
Mmmh que raro ese mensaje de error.
Si el método está devolviendo un array (o lo que sea), entonces ya no es un "método void".
¿Podemos ver el código completo? En algún sitio ha de haber un error de sintaxis que hace que el compilador considere void un método que no lo es...
Te dejo además un código de ejemplo, donde un método genera y retorna un array de enteros.
import java.util.Random;
import java.util.Scanner;
public class PruebaMetodoArray {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.print("Cuantos enteros quieres generar?: ");
int cantidad = teclado.nextInt();
int[] generados = arrayAzarEnteros(cantidad);
System.out.println("\nLista de enteros generados:");
for (int entero: generados)
System.out.print(entero + " ");
teclado.close();
}
/*
* Genera un array con tantos números enteros al azar
* como se le indique por argumentos.
*/
public static int[] arrayAzarEnteros(int numEnteros) {
int[] enteros = new int[numEnteros];
Random azar = new Random();
for (int i = 0; i < enteros.length; i++)
enteros[i] = azar.nextInt(100);
return enteros;
}
}