Secondo la tua domanda,
se si utilizza "|" operatore come "if (x == 1 | x == 2)", entrambe le espressioni sono valutate e se esiste almeno un valore TRUE, eseguire il corpo del blocco if
se si utilizza "||" operatore come "if (x == 1 || x == 2)", la prima espressione viene valutata e se viene restituita TRUE allora non valuterà la seconda espressione ed eseguirà il corpo del blocco if
se si utilizza operatore "&" come "if (x == 1 & x == 2)", entrambe le espressioni vengono valutate e se entrambe le espressioni sono restituire valore TRUE quindi eseguire il corpo del blocco if
se si utilizza "& & "operatore come" if (x == 1 & & x == 2) ", viene valutata la prima espressione e se restituisce FALSE quindi non passa alla valutazione della seconda espressione e NON esegue il corpo del blocco if
Inoltre, "||" e "& &" può essere utilizzato per risparmiare il tempo delle operazioni della vostra applicazione
fonte
2014-09-26 04:18:12
Vuoi sapere questo "per i tipi booleani"? Per i tipi interi, l'operatore logico o logico è molto utile in sé, ma l'operazione di cortocircuito non è un'alternativa poiché non funziona su tipi interi. –
Vedere la risposta qui: http://stackoverflow.com/questions/9264897/reason-for-the-exsistance-of-non-short-circuit-logical-operators – Halogen