MAKE JAVA GREAT AGAIN
Мемы: @java_memes
Post #300
4.55K
Java Developer Java Puzzler Что будет выведено на экран? final var targaryens = 2; final var lannisters = 25; final var starks = ‘1’; final var snow = true ? targaryens * lannisters : starks; System.out.print(snow); A. 2 B. 25 C. 1 D. 50
переписал объяснение:
Правильный ответ А. Компилятор заранее посчитает константы, и в тернарном операторе для типа переменной snow сделает выбор в пользу char. Значение snow становится 50, а при выводе на экран печатается 2, т.к. в таблице ascii 50-й символ это двойка.
В доке говорится, если одно из значений constant expression типа int, long, short, а второе - более узкое, то в случае влезания в диапазон меньшего, выберется он. Если убрать final у targaryens или lannisters, то правильный ответ будет D – 50.
Правильный ответ А. Компилятор заранее посчитает константы, и в тернарном операторе для типа переменной snow сделает выбор в пользу char. Значение snow становится 50, а при выводе на экран печатается 2, т.к. в таблице ascii 50-й символ это двойка.
В доке говорится, если одно из значений constant expression типа int, long, short, а второе - более узкое, то в случае влезания в диапазон меньшего, выберется он. Если убрать final у targaryens или lannisters, то правильный ответ будет D – 50.




















