È possibile evitare molti "o" (||) nelle condizioni che causano la stessa azione? - pagina 8

 
paladin80:

Nei miei programmi, se ci sono molti if, uso questa costruzione, con le condizioni che daranno più spesso false in primo luogo:

E se ho bisogno di controllare molti if-op, uso questo modo:
Grazie, Maxim! Ma non va bene, perché le diverse condizioni che ho non sono paragonabili nella logica, né nei parametri!
 
alsu:

No, non funziona così. Innanzitutto, ci deve essere qualcosa dopo if(), almeno un punto e virgola (cioè un operatore vuoto) . In secondo luogo, a quale dei se appartiene il vostro altro operatore? Se si riferisce solo all'ultimo (come l'hai scritto tu), allora l'Azione sarà eseguita solo se la condizione D è vera, purché A,B e C siano false. È sempre consigliabile mettere le parentesi graffe per vedere chiaramente la logica.

Se la mia evidenziazione è possibile, allora è una buona idea farlo in questo modo:

if (!A && !B && !C && !D) ;//пустой оператор
else Action();

  

Come? Possibile? -------------------------- Ho controllato nel codice, il compilatore dà un avvertimento;

';' - punto e virgola inaspettato C:\Program Files\

Se funziona, possiamo sopportare anche l'avvertimento?!

 
borilunad:

Se quello che ho evidenziato è possibile, allora sarebbe una buona idea renderlo tale:

Come? Possibile? -------------------------- Controllato nel codice, il compilatore dà un avvertimento;

';' - punto e virgola inaspettato C:\Program Files\

Se funziona, possiamo sopportare anche l'avvertimento?!

if (!A && !B && !C && !D) return(0); //закончение действия программы
else Action();
 
paladin80:

Grazie mille! Com'è facile!

Tuttavia, ho dovuto mettere questo blocco alla fine dell'inizio, perché return(0) non permetteva a nessun altro di funzionare dopo di esso.

 
Qualcuno ha misurato la velocità? )))
 
TheXpert:
Qualcuno ha misurato la velocità? )))

Prendo una misura!

Finalmente l'ho misurato! Sono le 17.26! Questo è 10 minuti più lungo del miglior if() senza trucchi in sei mesi nel tester. Mi dispiace, ma non si può evitare! Continuerò a scavare! Grazie a tutti! Ma è ancora troppo presto per tirare le somme!

 
borilunad:

Se quello che ho evidenziato è possibile, allora sarebbe bene renderlo tale:

Come? Possibile? -------------------------- Controllato nel codice, il compilatore dà un avvertimento;

';' - punto e virgola inaspettato C:\Program Files\

Se funziona, possiamo sopportare anche l'avvertimento?!


Viene dato un avvertimento nel caso in cui qualcuno abbia messo una virgola nel posto sbagliato(l'operatore vuoto ';' non è usato spesso). Questa costruzione funziona ed è perfettamente legale.
 
borilunad:
Prendo una misura!

Ma bisogna controllare tutte le opzioni. Altrimenti potresti sbagliarti.
 
borilunad:

Se quello che ho evidenziato è possibile, allora sarebbe una buona idea renderlo tale:

Come? Possibile? -------------------------- Controllato nel codice, il compilatore dà un avvertimento;

';' - punto e virgola inaspettato C:\Program Files\

Se funziona, possiamo sopportare anche l'avvertimento?!

Per rendere gli avvisi meno fastidiosi, usate: {}

if (!A && !B && !C && !D) {} //пустой оператор
else Action();

 
PapaYozh:

Per evitare che gli avvisi ingombrino gli occhi, usate {}: {}

Grazie! Ora proverò quelle staffe!
Motivazione: