Sto provando a valutare l'espressione (1 <= month <= 12)
in una condizione if.Valutazione dell'espressione 1 <= mese <= 12
Questa dichiarazione sembra valida in javascript, ma non in Java.
In Java,
int month = 0;
boolean flag = (1 <= month <= 12);
getta l'errore seguente:
The operator <= is undefined for the argument type(s) boolean, int
in JavaScript,
var month = 0;
console.log('Expression evaluates to: ', (1 <= month <= 12));
It always returns
true
no matter what the value of month is.
Qualcuno può spiegare:
- Se è un'espressione valida o no?
- Perché sempre cede a
true
in javascript? - Perché java lo considera un'espressione non valida?
Inoltre so che posso farlo funzionare in questo modo (1 <= month && month <= 12)
. Quindi, non cercando una soluzione ma una spiegazione.
Grazie. Fammi sapere anche se le mie domande non sono chiare.
Questa è un'espressione valida (in JavaScript, non in Java), ma non esegue ciò che si pensa che faccia. Java non ti consente di eseguire un confronto come quello tra un numero e un booleano, ma analizza l'espressione nello stesso modo ('(1 <= mese) <= 12'). – Pointy
Non confrontare Javascript e Java. Non sono fatti per lo stesso scopo. Java è fortemente digitato, javascript non lo è e permetterà più * funky * programmazione in stile – ortis