Esiste un nome per negare una condizione in un blocco if-else?

-2

Recentemente ho revisionato il codice che leggeva come segue:

if (!condition) {
  do_something();
} else {
  do_something_else();
}

In altre parole, nell'istruzione if abbiamo controllato che una condizione era falsa e ha eseguito una delle due funzioni in base al suo valore di verità.

Ho pensato che fosse uno stile confuso e ho raccomandato che la condizione fosse verificata così com'è, e che i blocchi if e else fossero scambiati. Tuttavia, non sono riuscito a trovare un nome per questo modello di "condizione negata in if-else". Esiste un nome esistente per questo modello?

    
posta Nate Rook 30.05.2018 - 00:13
fonte

1 risposta

2

In alcuni contesti, in particolare quelli che comportano un sovraccarico dell'operatore, espressioni come foo!=bar e !(foo==bar) potrebbero avere un comportamento caso d'angolo diverso. Anche quando non si utilizza il sovraccarico dell'operatore, il significato naturale per il primo potrebbe essere "foo ha un valore diverso da quello del bar", a differenza di "foo non ha lo stesso valore di bar".

Inoltre, il modello del codice:

if (condition1)
{
  if (condition2)
    action1;
  else
    action2;
}
else
  action3;

sarà spesso più difficile da leggere rispetto a:

if (!condition1)
  action3;
else if (condition2)
  action1;
else
  action2;

nonostante la necessità di invertire la prima condizione. Non penso che ci sia un nome particolare per quel modello, ma non è affatto insolito.

    
risposta data 30.05.2018 - 00:25
fonte

Leggi altre domande sui tag