|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2006
Città: Roma
Messaggi: 2187
|
[JAVA] Il missing return statement che non c'e !
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). Codice:
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
__________________
SCAMBI EFFETTUATI CON: diventano troppi...nn entrano piu!!! Ultima modifica di @mattste : 04-12-2011 alle 11:34. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 1999
Città: Pistoia
Messaggi: 618
|
Mancano i return ne vari else if dove richiami la funzione in modo ricorsivo
__________________
CPU: AMD Phenom II X3 720 BE - MOBO: Asrock AS790GXH/128 - RAM: 2x 2GB Kingston 800 MHz - VGA: Powercolor Ati Radeon HD 4850 512 MB GDDR4 - HD: 320 GB Hitachi Sata II - PSU: Corsair 650VXEU - CASE: Cooler Master Cavalier Netbook Asus 1000HE |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:13.


















