E' OK per confrontare un int e un lungo in Java ...E 'OK per confrontare un int e un lungo in Java
long l = 800L
int i = 4
if (i < l) {
// i is less than l
}
E' OK per confrontare un int e un lungo in Java ...E 'OK per confrontare un int e un lungo in Java
long l = 800L
int i = 4
if (i < l) {
// i is less than l
}
Sì, va bene. Lo int
verrà convertito implicitamente in un long
, che può sempre essere eseguito senza alcuna perdita di informazioni.
Solo per aggiungere uno scenario che si è verificato. 'int a = Integer.MAX_VALUE; long b = a; 'il seguente dà false. 'print (a + 1> b)' Sembra che la conversione implicita avvenga dopo che 'a + 1' è stato memorizzato come' int' –
@WeishiZeng: Sì, assolutamente. Entrambi gli operandi in 'a + 1' sono' int' - così che l'addizione avviene nell'aritmetica 'int', quindi la conversione in 'long', quindi il confronto. –
qualsiasi motivo potrebbe non essere? – bestsss
Cosa è successo quando l'hai provato? – EJP