Por que falta retorno?

Nese metodo por que aparece essa mensagem?

public double divide(double a, double b){
if(b==0)
if(a==0){
JOptionPane.showMessageDialog(null, “Quociente Indefinido”,“Falha”,JOptionPane.ERROR_MESSAGE);
return 0;
}else
JOptionPane.showMessageDialog(null, “Divisão por zero”,“Falha”,JOptionPane.ERROR_MESSAGE);
else
return a/b;

missing return statement ( falta declaração de retorno). Ora! nao esta aí!?

O que é retornado se b == 0 e a != 0 ???

Coloca um valor de retorno padrão, caso nenhuma das condições seja satisfeita ou então crie condições if para cada possível resultado. Se for encontrada uma situação que nenhum dos teus ifs testa, o compilador não encontra nada para retornar, e ele consegue ver isso em tempo de compilação.

Agora ficou claro o porquê dessa mansagem.