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

Título: Java código de ejemplo método genera y retorna un array (arreglo) de enteros int
Publicado 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:

Código: [Seleccionar]
public static int[] collatz(int n) {
int[]aux= new int[300];
return aux;
}
Título: Re: Duda Java
Publicado por: Kabuto en 24 de Diciembre 2021, 20:05
Sí, sin ningún problema.

Los métodos en Java pueden retornar cualquier objeto o dato de tipo primitivo existente.
Título: Re: Duda Java
Publicado por: drate en 25 de Diciembre 2021, 17:01
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.
Título: Re: Duda Java
Publicado por: Kabuto en 25 de Diciembre 2021, 19:14
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.

Código: [Seleccionar]
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;
}

}