7. Istruzioni
7.1. Istruzioni semplici
Ogni linea deve contenere al massimo unistruzione. Ad esempio:
argv++; // Corretto
argc++; // Corretto
argv++; argc--; // EVITARE!
7.2. Istruzioni composte
Le istruzioni composte sono istruzioni che contengono liste di comandi
racchiusi tra parentesi graffe:
{
istruzioni
}
Vedi le sezioni seguenti per gli esempi.
Le istruzioni racchiuse dovrebbero essere indentate ad un ulteriore
livello rispetto allistruzione composta.
La parentesi graffa aperta dovrebbe stare alla fine della linea
che inizia listruzione composta; la parentesi graffa chiusa
dovrebbe iniziare una linea ed essere indentata verticalmente con
linizio dellistruzione composta.
Le parentesi graffe sono usate per tutte le istruzioni, anche quelle
singole, quando sono parte di una struttura di controllo, come nelle
istruzioni if-else o for. Questo rende più semplice aggiungere istruzioni
senza introdurre accidentalmente errori dovuti alla dimenticanza
di aggiungere anche le parentesi graffe.
7.3. Istruzioni return
Unistruzione return con un valore non dovrebbe usare parentesi
a meno che queste rendano, in qualche modo, il valore ritornato
più ovvio. Ad esempio:
return;
return mioDisco.dimensione();
return (dimensione ? dimensione : dimensioneStandard);
7.4. Istruzioni if, if-else, if else-if else
La classe di istruzioni if-else deve avere la seguente forma:
if (condizione) {
istruzioni;
}
if (condizione) {
istruzioni;
} else {
istruzioni;
}
if (condizione) {
istruzioni;
} else if (condizione) {
istruzioni;
} else {
istruzioni;
}
Note: Le
istruzioni if usano sempre le parentesi graffe {}. Evitare la seguente
forma:
if (condizione) //EVITARE! QUESTO OMETTE LE PARENTESI GRAFFE {}!
istruzione;
7.5. Istruzioni for
Unistruzione for dovrebbe avere la seguente forma:
for (inizializzazione; condizione;
aggiornamento) {
istruzioni;
}
Unistruzione for vuota (in cui tutto il lavoro è dato dalle
clausole inizializzazione, condizione e aggiornamento) dovrebbe
avere la seguente forma:
for (inizializzazione; condizione; aggiornamento);
Quando si usa loperatore virgola nella clausola di inizializzazioen
o aggiornamento di unistruzione for, evitare la complessità
di utilizzare più di tre variabili. Se necessario, usare istruzioni
separate prima del ciclo for (per la clausola di inizializzazione)
o alla fine del ciclo (per la clausola aggiornamento).
7.6. Istruzioni while
Unistruzione while dovrebbe avere la seguente forma:
while (condizione) {
istruzioni;
}
Unistruzione while vuota dovrebbe avere la seguente forma:
while (condizione);
7.7. Istruzioni do-while
Unistruzione do-while dovrebbe avere la seguente forma:
do {
istruzioni;
} while (condizione);
7.8. Istruzioni switch
Unistruzione switch dovrebbe avere la seguente forma:
switch (condizione) {
case ABC:
istruzioni;
/* prosegue oltre */
case DEF:
istruzioni;
break;
case XYZ:
istruzioni;
break;
default:
istruzioni;
break;
}
Ogni volta che un caso non include listruzione break, e quindi
prosegue nel caso successivo, aggiungere un commento nel punto in
cui normalmente dovrebbe esserci listruzione break. Questo
è mostrato nel codice desempio precedente con il commento
/* prosegue oltre */.
Ogni istruzione switch dovrebbe includere un caso di default. Nel
caso di default listruzione break è ridondante, ma previene
un errore nel caso che in seguito venga aggiunto un altro case.
7.9. Istruzioni try-catch
Unistruzione try-catch dovrebbe avere il seguente formato:
try {
istruzioni;
} catch (ClasseEccezione e) {
istruzioni;
}
Unistruzione try-catch può inoltre essere seguita da finally,
che viene eseguita indipendentemente dal fatto che il blocco try
sia stato o meno completato con successo.
try {
istruzioni;
} catch (ClasseEccezione e) {
istruzioni;
} finally {
istruzioni;
}
Torna all'indice Generale del corso di Specifiche Sun di Software Planet