Fórum Comando Return #520302

19/05/2015

0

Tenho uma dúvida, o comando return no método, serve para retornar um valor e finalizar o método. Porém é correto usar ele no meio do método e ignorar o restante do código ?, exemplo abaixo para entendimento.


//Metodo não permite salvar quando a etapa anterior possui quantidade de inscrito igual a 0
Public String metodoteste(){
    Etapa etapaanterior = outrometodo(etapa.codp.getid(),etapa.getNivel()-1);
        
        //Usando etapa diferente do null, para evitar erro quando pesquisa um valor para comparação ..getQtdinscrito()==0
        if(etapaanterior!=null){
           if(etapaanterior.getQtdInscrito()==0){
              FacesUtils.mensErro("Impossivel salvar !!);
               return null; //continuar na mesma pagina e informar o erro acima
            } else{
                          codigo gigante....
                    return "Sucesso";
               {
          } else{
                   codigo gigante igual o de cima
                return "Sucesso";
             }       
}


minha dúvida, é evitar redundância no código no qual identifiquei como "códigogigante", e não quero criar um outro método para jogar esse código, para evitar futuras mudanças, pois o código que esta dentro desse metodoteste se relaciona muito no contexto do códigogigante.

Minha dúvida sobre o return, no sistema o java aceita, porém é elegante ou não fere as regras do java, ou seria certo, usar o return para ignorar o restante do código, para evitar redundância no caso da etapaanterior ser igual a null, conforme exemplo abaixo.


Public String metodoteste(){
    Etapa etapaanterior = outrometodo(etapa.codpoi.getid(),etapa.getNivel()-1);

        if(etapaanterior!=null){
           if(etapaanterior.getQtdInscrito()==0){
              FacesUtils.mensErro("Impossivel salvar !!);
               return null; //continuar na mesma pagina e informar o erro acima

              aqui o sistema iria encerrar o método, e não executaria o código gigante, pq eu usei um return.

            } 
        }
                         
   ...código gigante....

   return "Sucesso";             
}


achei um link no devemedia que fala que seria certo usar, porém talvez causaria erro, mas o erro não acontece.

"Quando encontra um comando return, Java finaliza imediatamente a execução do método e transfere o fluxo de execução ao módulo chamador substituindo o trecho do comando que o invocou pelo resultado retornado.

Qualquer código implementado depois de uma instrução return no corpo de um método não consegue ser alcançado pelo fluxo de execução tornando-se inacessível. Situações como esta não são comuns e devem ser evitadas porque provocam erros em tempo de compilação do tipo “unreachable statement”.



Leia mais em: Métodos: módulos de programa em Java – Parte 2 - Revista Easy Java Magazine 26 https://www.devmedia.com.br/metodos-modulos-de-programa-em-java-parte-2-revista-easy-java-magazine-26/27068#ixzz3ac14gjR2"
Roger Mendes

Roger Mendes

Responder

Posts

19/05/2015

Janaina Mendes

Não vejo problemas em está no meio do código. Veja alguns exemplos: [url]http://www.javaprogressivo.net/2012/09/o-comando-return-obtendo-informacoes.html[/url]
Responder

Gostei + 0

19/05/2015

Ronaldo Lanhellas

O return é muito utilizado e não tem nenhum problema em usá-lo no meio do código. Você pode usar até sem valor de retorno nenhum, apenas para sair do fluxo de execução principal. sua questão não é o return em si mas a organização do seu código. Use o princípio "dividir para conquistar": Ele rege que você deve dividir o problema em problemas menores então a solução final é a soma dos problemas menores, em outras palavras, se seu método está muito grande comece a criar sub-métodos para deixar seu projeto mais legível e organizado.
Responder

Gostei + 0

19/05/2015

Ronaldo Lanhellas

O return é muito utilizado e não tem nenhum problema em usá-lo no meio do código. Você pode usar até sem valor de retorno nenhum, apenas para sair do fluxo de execução principal. sua questão não é o return em si mas a organização do seu código. Use o princípio "dividir para conquistar": Ele rege que você deve dividir o problema em problemas menores então a solução final é a soma dos problemas menores, em outras palavras, se seu método está muito grande comece a criar sub-métodos para deixar seu projeto mais legível e organizado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar