Il programma SecondoGradoElse.java risolve il problema delle soluzioni di una equazione di secondo grado usando istruzioni condizionali con alternativa (invece delle tre istruzioni condizionali semplici).
/*
Soluzione equazione di secondo grado.
*/
class SecondoGradoElse {
public static void main (String args[]) {
double a=2, b=5, c=3;
double d;
double s1, s2;
d=b*b-4*a*c;
if( d==0 ) {
s1=(-b - Math.sqrt( b*b -4*a*c ))/(2*a);
s2=s1;
System.out.println("Soluzioni coincidenti: " + s1);
}
else if( d>0 ) {
s1=(-b - Math.sqrt( b*b -4*a*c ))/(2*a);
s2=(-b + Math.sqrt( b*b -4*a*c ))/(2*a);
System.out.println("Soluzioni reali: " + s1 + " " + s2);
}
else {
System.out.println("Soluzioni complesse");
}
}
}
In questo programma si nota l'uso della sequenza else if. In generale è possibile costruire una sequenza di questo tipo.
if( condizione1 ) {
A
}
else if( condizione 2 ) {
B
}
else {
C
}
In esecuzione, si verifica prima se condizione1 è vera. Se lo è, si esegue A e si passa poi al seguito del programma. Se questa condizione è falsa, si va a vedere se condizione2 è vera o falsa. Nel primo caso, si esegue B, nel secondo caso si esegue C. La traduzione letterale dei termini inglesi aiuta a interpretare queste istruzioni:
se condizione1 è vera allora esegui A, altrimenti: se condizione2 è vera allora esegui B, altrimenti esegui C
Da notare che C viene eseguito solo se sia A che B sono falsi.