Se ho il seguente ifValutazione del && operatore booleano
if ((row != -1) && (array[row][col] != 10)) {
....
}
Dove row
è un valore int
e array
è un oggetto int[][]
.
La mia domanda è, se questo genererà un'eccezione se row = -1 come l'array non avrà un campo -1, quindi l'eccezione fuori limite? O si fermerà alla prima parte di if, the (row! = - 1) e poiché ciò è falso, ignorerà il resto? Oppure, per essere sicuro che non generi un'eccezione, dovrei separare la dichiarazione di cui sopra in due?
(Pls, non ditemi controllare questo fuori per la mia auto :) Io sto chiedendo qui perche' voglio fare una domanda follow così ...)
si fermerà sulla prima condizione, se vale false – Asaf
Java è uno dei linguaggi di programmazione che ha cortocircuitando per gli operatori logici, in modo che funziona come ci si aspetterebbe. VB e SQL sono lingue che non hanno questa caratteristica, il che significa che si dovrebbe usare un metodo diverso per evitare un'eccezione fuori dai limiti. – Gabe
Si fermerà al primo test e non tenterà il secondo test. – Java42