la domanda chiede "perché hai bisogno di altro dato che puoi ottenere la stessa funzionalità usando solo se" (parafrasato). Prima di tutto, i due sono solo equivalenti in programmi abbastanza semplici; ci sono molte situazioni in cui altrimenti la funzionalità non può essere facilmente replicata usando solo istruzioni if.
che diceva, in situazioni così semplici è sempre meglio usare altrimenti if.
if (a==b){}
if (!(a==b) && a==c ){}
ci sono due problemi con questo che vengono risolti usando else if. Innanzitutto, esegui il confronto tra aeb due volte, il che è un lavoro non necessario. Secondo, a meno che non memorizzi le regole o faccia molto affidamento sulle parentesi, non è ovvio come si risolve la seconda espressione booleana.
if (a==b) {}
else if (a==c) {}
È più pulito, più chiaro e più efficiente. È fondamentalmente la programmazione del Santo Graal.