Ajuda... criação de métodos!

Olá pessoal, sou novo por aqui e novo em JAVA também… se puderem me ajudar ficaria muito grato!

Estou com o seguinte problema:
Tenho que criar um prog. que faça o seguinte: o usuário enviará, por teclado, uma quantidade de numeros a serem sorteados e a limitacao de numeros (ex.: de 0 a 100, de 0 a 1000). Em seguida, o programa retorna o resultado dos numeros sorteados e é finalizado em seguida.
Estou com problema no método "aleatorio" que eu criei… quando ele é declarado no final do codigo, ele dá um erro dizendo que o retorno tem que ser do tipo int… mas pelo que eu vi já é inteiro a variavel!

Aqui vai o codigo:

import java.io.*;
public class Exercicio0505 {
	
	public static void main (String [] args)
	{
			
	String s="";
	DataInputStream dado;
	int qtd=0, faixa=0;
	
	try
	{
		System.out.println("Entre com a quantidade de numeros a serem sorteados:");
		dado= new DataInputStream(System.in);
		s=dado.readLine();
		qtd=Integer.parseInt(s);
		
		System.out.println("Entre com o numero que limitara o range do sorteio:");
		dado= new DataInputStream(System.in);
		s=dado.readLine();
		faixa=Integer.parseInt(s);
		
		System.out.println("Os numeros sorteados sao: " +aleatorio(qtd, faixa)+ " ");
				
	}
	catch(NumberFormatException e)
	{
		System.out.println("Digite apenas valores numericos.");
	}
	catch(IOException e)
	{
		System.out.println("Erro na entrada de dados.");
	}
	}

	public static int aleatorio(int qtd, int faixa)//erro aparece aqui (This method must return a result of type int) 
	{
		for (int i=0;i<=qtd;i++)
		{
			int x= (int) (Math.random()* faixa);
			
			while (x==0)
			{
				aleatorio(qtd, faixa);
			}
			return x;
		}
	}
}

Qualquer sugestao para melhoria do codigo tambem é muito bem vinda!

Obrigado!

É prq vc colocou o retorno dentro do laço , o return só sera visivel dentro do laço e o método espera que vc retorne algo caso int



public static int aleatorio(int qtd, int faixa)//erro aparece aqui (This method must return a result of type int) 
 	{
 		for (int i=0;i<=qtd;i++)
 		{
 			int x= (int) (Math.random()* faixa);
 			
 			while (x==0)
 			{
 				aleatorio(qtd, faixa);
 			}
 			return x;
 		}
     return null;	//ou retrun x;
     }

Apenas acrescentando ao que ramilani12 disse.

Sugiro que você altere o código para que os números gerados retornem a classe chamadora. Use uma variável de retorno como um List ou uma String mesmo, da forma que está o seu modelo, só vai retornar o último número gerado.

Verifiquei que no código original tem uma iteração a mais no for tb.

Segue um exemplo de como vc poderia fazer, mas creio que tem formas mais “polidas” de se fazer.

public static String aleatorio(int qtd, int faixa, String retorno) 
{
	for (int i=1;i<=qtd;i++)
	{
		int x= (int) (Math.random()* faixa);
 			
		while (x==0)
		{
			aleatorio(qtd, faixa,retorno);
		}
		retorno = retorno + " " + x;
	}
	return retorno;
	
}

Obrigado a todos… meu problema foi resolvido!

Valeu a força e até a próxima! :wink:

ae parceiro eh importante que foi resolvendo, acredito q seja importante tb vc posta como ficou apos a resolução o seu caso ai eh como os companheiros falou vc estava retornando dentro do lanço for e o retorno tem q ser da class do metodo!! apos o for…