PDA

View Full Version : [JAVA] Il missing return statement che non c'e !


@mattste
04-12-2011, 10:30
Ciao a tutti ragazzi!!
Questo è un programma fatto per un esercitazione all'uni sui metodi ricorsivi in cui devo scrivere una classe contenente un metodo statico String fondi(String a, String b) che, date due stringhe a e b, restituisce una nuova stringa ottenuta prendendo alternativamente una vocale dalla stringa a ed una consonante dalla stringa b.Le due stringhe le assumo non null ma possono avere lunghezza diversa. in questo caso continui con l'unica string rimasta.(da quanto ho capito).


private static String aux(String a,String b,String temp){

//a b stringa vuota BASE DI INDUZIONE
if (a.length()==0 && b.length()==0)
return temp;
//b stringa vuota
else if (a.length()!=0 && b.length()==0){
if(a.charAt(0)=='a' || a.charAt(0)=='e' || a.charAt(0)=='i' || a.charAt(0)=='o' || a.charAt(0)=='u')
temp=temp+a.charAt(0);
aux(a.substring(1),b,temp);}
//a stringa vuota
else if (a.length()==0 && b.length()!=0){
if(b.charAt(0)!='a' || b.charAt(0)!='e' || b.charAt(0)!='i' || b.charAt(0)!='o' || b.charAt(0)!='u')
temp=temp+b.charAt(0);
aux(a,b.substring(1),temp);}
//a e b stringhe NON nulle
else if (a.length()!=0 && b.length()!=0){
//Se ultima stringa ha una vocale aggiungo una lettere da b
if(temp.charAt(temp.length()-1)=='a' || temp.charAt(temp.length()-1)=='e' || temp.charAt(temp.length()-1)=='i' || temp.charAt(temp.length()-1)=='o' || temp.charAt(temp.length()-1)=='u' ){
if(b.charAt(0)!='a' || b.charAt(0)!='e' || b.charAt(0)!='i' || b.charAt(0)!='o' || b.charAt(0)!='u')
temp=temp+b.charAt(0);
aux(a,b.substring(1),temp);}
//se ultima stringa ha una consonante aggiungo una lettera da a
//if(temp.charAt(temp.length())!='a' || temp.charAt(temp.length())!='e' || temp.charAt(temp.length())!='i' || temp.charAt(temp.length())!='o' || temp.charAt(temp.length())!='u' ){
else{
if(a.charAt(0)=='a' || a.charAt(0)=='e' || a.charAt(0)=='i' || a.charAt(0)=='o' || a.charAt(0)=='u')
temp=temp+a.charAt(0);
aux(a.substring(1),b,temp);}}
else return temp;
}



public static String fondi(String a,String b){
return aux(a,b,"");
}





Mi dà sempre un errore di missing return statement anche se ho messo un bel else return temp :( . Come è possibile?!

Tommy
04-12-2011, 11:07
Mancano i return ne vari else if dove richiami la funzione in modo ricorsivo