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

 
borilunad:
Questa questione della velocità è ciò che mi ha spinto a rivolgermi agli stimati membri del forum, "come evitare un sacco di "o"...", perché credevo che causasse una perdita di tempo. E se alcuni sono spinti ad entrare in polemica a causa delle loro ambizioni, o si ostinano a promuovere i loro sviluppi, restano affari loro personali, e non mi riguardano. Comunque, grazie a tutti quelli che hanno risposto! E auguro successo a tutti!
Prima impara a lavorare con il tuo cervello, hai già imparato a lavorare con la tua lingua. Buona fortuna!
 
TarasBY:
Prima impara a lavorare con il tuo cervello, hai già imparato a lavorare con la tua lingua. Buona fortuna!
Resta da rimpiangere che la vostra cultura, per non parlare dell'etica di base, non si sia allontanata molto dal vostro idolo storico Taras Bulba!
 
Da quanto ho capito - non ci sarà alcun risultato. Peccato. Anche se non ci vuole molto tempo per farlo (se necessario), ci sono molte opzioni offerte
 
Vinin:
Da quanto ho capito, non ci sarà alcun risultato. Peccato. Anche se non ci vuole molto tempo per farlo (se necessario), ci sono molte opzioni offerte

Nella pagina precedente ho riportato il risultato preliminare ad Alexey (Carne) e le mie spiegazioni, che ora vi do per intero:

avatar
891
Carne 13.02.2013 20:36
borilunadi:

Ho provato tutti i suggerimenti e risulta che il più veloce è: if (A || B || C || D) Action();

Mi chiedo come potrebbe essere più veloce di questo: if (A) Action(); else if (B) Action(); else if (C) Action(); else if (D) Action();


947
borilunad 13.02.2013 22:46
Carne:

Mi chiedo come potrebbe essere più veloce di questo: if (A) Action(); else if (B) Action(); else if (C) Action(); else if (D) Action();

Scusa Alexei, sono appena tornato a casa! Questa variante non è adatta perché, come ho spiegato sopra, Acron(); non è solo una funzione di esecuzione, ma contiene diverse condizioni in più, comuni alle precedenti, ma diverse nella direzione e, di conseguenza, in diverso ordine di esecuzione delle funzioni di azione necessarie. Come capite, non ho potuto appesantire il codice con questa variante. E in linea di principio sono d'accordo con te che la tua versione potrebbe essere più veloce, se Action(); fosse solo una chiamata di una funzione, niente di più. Grazie mille per l'aiuto nella mia ricerca di soluzioni ottimali! Buona notte a voi!
Non posso ancora aggiungere nulla a questo, poiché i bool non hanno dato un taglio temporale, e attualmente sto controllando tutte le funzioni che uso, e, come potete immaginare, ci vuole molto tempo per farlo. Grazie per la vostra considerazione!
 
Non è un problema di principio. Posso ottenere i risultati da solo. Risultati numerici
 
Vinin:
In linea di principio, non è un problema. Posso ottenere i risultati da solo. Risultati numerici

Victor, proprio ora ho finito di pulire il codice, come gli appartamenti dopo la ristrutturazione, ho pulito un sacco di spazzatura, come condizioni inutili, normalizzazioni inutili, corretto la logica, ridotto il numero di funzioni utilizzate. Alexey(alsu) mi ha aiutato molto con i suoi consigli, e gli sono grato per questo. Come risultato, la corsa di 4 mesi nel tester è stata un po' più lunga di 2 minuti, e ne sono stato soddisfatto. E le funzioni di bool si sono rivelate inutili, perché non mi hanno dato alcun vantaggio di velocità, ma mi hanno dato un po' di esperienza nel lavorare con loro che mi tornerà utile più tardi.

Ringrazio tutti coloro che hanno partecipato e auguro successo e buoni profitti a tutti!