Erro missing return Statement

4 respostas
programaçãojava
W

Pessoal, boa tarde!

Está dando o seguinte erro no meu código “missing return statement”.

package ex1;


    public class CalcVelocidadeMRU {
     
        private float espaco;
        private float tempo;
        
    // Método Construtor
        
    public CalcVelocidadeMRU(){
     
    }

    public CalcVelocidadeMRU(float espaco, float tempo){
        
        
    }


    // Métodos Get e Set
        
        float getEspaco(){
        return this.espaco;
    }
        
        public void setEspaco(float espaco){
        this.espaco = espaco;
    }
        
        float getTempo(){
        return this.tempo;
    }
        
        public void setTempo(float tempo){
        this.tempo = tempo;
    }
        
        
    public float Calc(){
        
        if(this.espaco < 1 || this.tempo < 1){
            System.out.println("Não foi possível efetuar o calculo, pois os valores inseridos são menores que 1");
        }else{
            return (this.espaco / this.tempo);
            }
    } / *> "missing return statement", aparece nessa linha o aviso. */

        
    public String Dados(){
        return " VM = " + Calc();
    }
        
        
        
    }

Como posso resolver esse erro?

4 Respostas

Sandro_Machado

É porque você criou um método com retorno de algum dado, então é exigido que de qualquer forma ele retorne algum valor, no seu caso um float.

o caso é que se a execução cair no seu if não há retorno.

coloque um return dentro do if e o problema se resolverá.

complementando - System.out.println("Não foi possível efetuar o calculo, pois os valores inseridos são menores que 1"); não é considerado retorno.

peczenyj

pois bem

quando vc declara um método com um tipo de retorno, vc deve retornar algo compativel com o tipo que vc declarou. se vc deve retornar um float, então vc deve retornar um float.

ok, mas e quando vc não pode fazer uma dada ação? pois bem, vc tem duas opções

  1. vc lança uma exception, dizendo por que vc nao pode efetuar essa operação

  2. vc retorna um valor falso, previamente acordado, algo como -1, 0, null, ou um objeto especial que tenha alguma logica.

perceba que vc socou um println dentro do seu metodo. o mais correto seria vc lançar uma exception que sera tratado em um try/catch.

vc tb pode tentar lançar uma runtime exception. isso vai simplificar algumas coisas ( vc nao vai ser obrigado a tratar essa exception ) mas vc pode ter uma falha que vc nao esta esperando.

tem uma forma de vc retornar um objeto Resultado<alguma coisa> e vc pode perguntar se ocorreu tudo bem. mas ai sao outros 500

W

Obrigado meu querido!

Você é o cara!

Obrigado pela ajuda, que Deus o abençoe.

W

Obrigado meu querido!

Você é o cara!

Obrigado pela ajuda, que Deus o abençoe.

Criado 5 de setembro de 2016
Ultima resposta 16 de out. de 2016
Respostas 4
Participantes 3