Próbuję ocenić wyrażenie (1 <= month <= 12)
w warunku if.Ocena wyrażenia 1 <= miesiąc <= 12
Ta instrukcja wydaje się być poprawna w javascript, ale nie w Javie.
W Javie
int month = 0;
boolean flag = (1 <= month <= 12);
zgłasza następujący błąd:
The operator <= is undefined for the argument type(s) boolean, int
w JavaScript,
var month = 0;
console.log('Expression evaluates to: ', (1 <= month <= 12));
It always returns
true
no matter what the value of month is.
Może ktoś proszę wyjaśnić:
- Jeśli jest to prawidłowe wyrażenie, czy nie?
- Dlaczego zawsze ustępuje pod
true
w javascript? - Dlaczego java uważa to za nieprawidłowe wyrażenie?
Również wiem, że mogę go uruchomić w ten sposób (1 <= month && month <= 12)
. Więc nie szukam rozwiązania, ale wyjaśnienie.
Dzięki. Daj mi również znać, jeśli moje pytania nie są jasne.
To jest poprawne wyrażenie (w JavaScript, nie Java), ale nie robi to, co myślisz robi. Java nie pozwoli ci przeprowadzić porównania między liczbą a wartością logiczną, ale analizuje wyrażenie w ten sam sposób ('(1 <= miesiąc) <= 12"). – Pointy
Nie należy porównywać kodu JavaScript i Java. Nie są wykonane w tym samym celu. Java jest silnie wpisana, javascript nie jest i pozwoli na bardziej * funky * styl programowania – ortis