Alternative multiple

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.