Como fazer um método retornar varias variaveis?

14 respostas
G
este método calcula todos os numeros impares ate o numero que o usuario digitou na main e tambem faz os numeros mudarem de linha a cada 10 numeros ,queria saber como retorno essa sequencia de numeros impares para a main e , se der , ja passar eles pulando linha a cada 10. vlw grl o/
private static void retornaImpares(int num)//numero entrado pelo scanner {
   
       int num2=1;
       while(num2<=num)//contador{
            if(num2%20==1)//definindo os numeros que a linha sera pulada{
                System.out.println("\n");}
        System.out.print(num2+" ");
        num2=num2+2;
      }}}
ps: eu coloquei esse imprimir ai de gambiarra , o ideal seria ele retornar os valores pra main

14 Respostas

RodrigoKaos

[i]Leia isso vai te ajudar a compreender melhor seu problema, e isso tbm.

Abc[/i]

douglaskd

vou respoder sua dúvida de acordo com seu título.

para retornar várias variaveis temos várias opções:

1 - Retornar um Array, uma collection ou um Objeto próprio

- vou retornar um ArrayList

seu método ficaria assim:

private static ArrayList<Integer> retornaImpares(int num){

//instâncio uma Collection: 
ArrayList<Integer> listImpar = new ArrayList<Integer>;

//suas condições aqui...

//ao invés de imprimir você faz:
listImpar.add(num2);

//e no final você retorna:
return listImpar;
}
Ataxexe
douglaskd:
vou respoder sua dúvida de acordo com seu título.

para retornar várias variaveis temos várias opções:

1 - Retornar um Array, uma collection ou um Objeto próprio

- vou retornar um ArrayList

seu método ficaria assim:

private static ArrayList<Integer> retornaImpares(int num){

//instâncio uma Collection: 
ArrayList<Integer> listImpar = new ArrayList<Integer>;

//suas condições aqui...

//ao invés de imprimir você faz:
listImpar.add(num2);

//e no final você retorna:
return listImpar;
}

Dica: Evite trabalhar diretamente com as classes, prefira as interfaces. A assinatura do seu código, então, ficaria assim:

private static List<Integer> retornaImpares(int num){

E a inicialização da variável, assim:

List<Integer> listImpar = new ArrayList<Integer>;
G
Ataxexe:
douglaskd:
vou respoder sua dúvida de acordo com seu título.

para retornar várias variaveis temos várias opções:

1 - Retornar um Array, uma collection ou um Objeto próprio

- vou retornar um ArrayList

seu método ficaria assim:

private static ArrayList<Integer> retornaImpares(int num){

//instâncio uma Collection: 
ArrayList<Integer> listImpar = new ArrayList<Integer>;

//suas condições aqui...

//ao invés de imprimir você faz:
listImpar.add(num2);

//e no final você retorna:
return listImpar;
}

Dica: Evite trabalhar diretamente com as classes, prefira as interfaces. A assinatura do seu código, então, ficaria assim:

private static List<Integer> retornaImpares(int num){

E a inicialização da variável, assim:

List<Integer> listImpar = new ArrayList<Integer>;

ta dando um erro missing return statement , tenho que mudar alguma coisa quando chamo o metodo pra ele retorna uma array?

Rodrigo_Sasaki

Está faltando uma linha com a palavra reservada return. Caso não consiga ver onde está o problema, poste o método pra gente

G

o return tava na posicao errada :stuck_out_tongue:

Rodrigo_Sasaki

Está sim, se você ver, você colocou o return dentro de uma condição, no caso definida pelo while.

Se por algum motivo o seu código não entrar no while o fluxo é quebrado, portanto é necessário ter um return em todos os fluxos.

Aliás, é por isso que dizem que é bom que o método tenha somente um ponto de saída. No seu caso, creio que o ideal seria deixar a linha com o return abaixo do laço.

G
private static List<Integer> retornaImpares(int num) {
   int num2=1;
    ArrayList<Integer> listImpar= new ArrayList<>();     
       while(num2<=num){
           if(num2%20==1){
               System.out.println("\n");}
           listImpar.add(num2);
        num2=num2+2;
       
      }
agora como faco pra pular 1 linha a cada 10 numeros?
drsmachado
guhzantut:
private static List<Integer> retornaImpares(int num) {
   int num2=1;
    ArrayList<Integer> listImpar= new ArrayList<>();     
       while(num2<=num){
           if(num2%20==1){
               System.out.println("\n");}
           listImpar.add(num2);
        num2=num2+2;
       
      }
agora como faco pra pular 1 linha a cada 10 numeros?
Por que você não faz uma pesquisa no google, em algum livro ou apostila antes de perguntar?
joaoabi

Brother da uma lida em Use a cabeça! Java que com certeza vai clarear um pouco para você.

G
drsmachado:
guhzantut:
private static List<Integer> retornaImpares(int num) {
   int num2=1;
    ArrayList<Integer> listImpar= new ArrayList<>();     
       while(num2<=num){
           if(num2%20==1){
               System.out.println("\n");}
           listImpar.add(num2);
        num2=num2+2;
       
      }
agora como faco pra pular 1 linha a cada 10 numeros?
Por que você não faz uma pesquisa no google, em algum livro ou apostila antes de perguntar?
sim , nao achei nada que me resolva
diogogama

Tem que estudar antes de postar dúvidas… quer q a galera crie código pra você??? na primeira pesquisa do google ou do GUJ apareceu isso, será que ajuda???

G

[quote=diogogama]Tem que estudar antes de postar dúvidas… quer q a galera crie código pra você??? na primeira pesquisa do google ou do GUJ apareceu isso, será que ajuda???


nao ajuda , eu quero pular linha dentro do array . mas ja achei outro modo de fazer isso sem usar o array . obg

RodrigoKaos

[i]Pular linha dentro do array?? .-.
Como?
Praque?
Porque?

[/i]

Criado 26 de agosto de 2013
Ultima resposta 28 de ago. de 2013
Respostas 14
Participantes 8