Per uscire da una funzione, in modo da saltare un blocco di istruzioni nel caso non sia più necessario, è giusta la seguente sintassi?
Esempio:codice:return;
codice:for (i=0;i<10;i++) if (a[i]==15) return;
Per uscire da una funzione, in modo da saltare un blocco di istruzioni nel caso non sia più necessario, è giusta la seguente sintassi?
Esempio:codice:return;
codice:for (i=0;i<10;i++) if (a[i]==15) return;
per uscire da una funzione ok...
per uscire da un blocco tipo while{}, if{}...usa break o continue a seconda del caso...
![]()
![]()
Chi di noi non vorrebbe
sollevare il velo sotto cui sta nascosto il
futuro...
David Hilbert
Si lo sapevo.
Grazie comunque.
Riferito al problema della rubrica...
è giusto così:
codice:void cerca (const Rubrica *p,char cognomeN, Riga *nTel){ int i; for (i=0;i<*p.primaRigaLibera;i++) if (*p.righe[i].cognomeNome == cognomeN) strcpy (*nTel.telefono, *p.righe[i].telefono); } /* cerca */
No ...
Intanto il parametro
char cognomeN
non puo' essere un char perche' un nominativo non e' fatto da un solo carattere. Deve essere un puntatore a char.
Poi, nel confronto
if (*p.righe[i].cognomeNome == cognomeN)
se cognomeNome e' una stringa di caratteri, non lo puoi confrontare con un singolo carattere (cognomeN). Se cognomeN e' un puntatore a caratteri (una stringa, come ti ho detto nel primo punto) allora il confronto va fatto con la funzione apposita
if(strcmp(*p.righe[i].cognomeNome, cognomeN)==0)
Infine, se la ricerca ha avuto successo, dovresti terminare il ciclo e quindi uscire, ovvero
if (*p.righe[i].cognomeNome == cognomeN)
{
strcpy (*nTel.telefono, *p.righe[i].telefono);
break;
}
Scusa, hai ragione.Originariamente inviato da oregon
No ...
Intanto il parametro
char cognomeN
non puo' essere un char perche' un nominativo non e' fatto da un solo carattere. Deve essere un puntatore a char.
Poi, nel confronto
if (*p.righe[i].cognomeNome == cognomeN)
se cognomeNome e' una stringa di caratteri, non lo puoi confrontare con un singolo carattere (cognomeN). Se cognomeN e' un puntatore a caratteri (una stringa, come ti ho detto nel primo punto) allora il confronto va fatto con la funzione apposita
if(strcmp(*p.righe[i].cognomeNome, cognomeN)==0)
Infine, se la ricerca ha avuto successo, dovresti terminare il ciclo e quindi uscire, ovvero
if (*p.righe[i].cognomeNome == cognomeN)
{
strcpy (*nTel.telefono, *p.righe[i].telefono);
break;
}
E' stato un errore di trascrizione quello della stringa nell'intestazione della funzione.
Non mi ero accorto.