Тернарний оператор

Опубликовано: 18 Ноябрь 2024
на канале: Java Online Lessons
1,316
37

#java #learning #challenge #відповідь
​​А правильна відповідь - X88 🙀

Чому? Бо в Java тернарний оператор визначає тип результату на основі типів своїх другого та третього операндів. Якщо типи цих операндів різні, то відбувається автоматичне приведення типів до найбільш загального типу, який може вмістити обидва значення. Наприклад, якщо char x та byte i, то приведеться результат до int: int r = false ? i: x; Тому що char - unsigned 16 біт (від 0 до 65,535), а byte - signed 8 біт (від -128 до 127). Ну а якщо boolean x та int i, то приведеться до Object.

Чи такі нюанси мають відношення до практичного значення. Мають 🙂 Просто, можливо, вам вони не зустрічались, та ви не робили або не бачили багів з цим. І це нормально, адже дійсно, як на мене, цей кейс не дуже поширений. Але, це нюанси мови Java. Знати їх чи ні - кожний вирішує сам для себе. Їх знання підвищує вашу "експертність" 😎 Їх незнання підвищує шанси написати код, який компілюється без помилок та ворнінгів, але при цьому може спрацювати невірно 🤷‍♂️ Тому висновок тут можна записати такий - слідкуйте, щоб типи операндів тернарного оператора були однакові, або легко та зрозуміло приводились до очікуваного типу.

#learnJava

👍 Ставте лайк і підпишіться, щоб отримати більше головоломок Java та пригод програмування. Щасливого кодування!

🪙☕ Купіть мені каву - допоможіть зібрати кошти для ЗСУ: https://www.buymeacoffee.com/ytkach

💬 Мій телеграм канал: https://t.me/tkach_channel

Слава Україні! 🇺🇦