|
Платные хостинги
Раскрутка сайта
Книги по программированию
Порядок вычисления логического выражения
- Доброго времени суток!Вот разбираюсь с чужим кодом и попалось такое выражениеКод if (verbose && level <= verboseLevel) System.out.println(s);highlightSyntax('javaYWExYj','java');гдеboolean verbose;int level;int verboseLevel;Меня интересует порядок вычисления выражения.Спасибо.
- Сначала level <= verboseLevel. А потом только результат, как ЛОГИЧЕСКОЕ выражение используется в операторе &&По-другому не получается - в логическом выражении можно только логические значения использовать.Хотя я бы так не написал - взял бы в скобки. Читать не удобно.
- Сначала идет проверка verbose... Если фалсе - не проверяет вторую часть вообще, далее level <= verboseLevel, а потома &&
- Спасибо.2AntonSaburov Я тоже, когда вносил изменения, в скобки взял.Меня ещЁ интересует вопрос: почему сначала вычисляется <=, а не && (ведь приоритет у && выше), только потому, что логическую переменную нельзя сравнить с числом?Это компилятор такой умный?
- В Яве идет явная типизация. По этому логическая переменная != числовой и с ними операции сравнения/логических действий не производят. Если ты напишешь к примеру verbose && level - это будет ошибка (компилятор ругатся будет). В Сях боол можно сравнивать с числовой, так как тизация менее жесткая... (правда сравнение будет - int > 0 - труе, int <= o - фалсе)
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|