Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Java: явное и неявное приведение. Помогите пожалуйста. Программирование

Иван Ученик (195), на голосовании 1 год назад
Всем привет! Подскажите пожалуйста, какие из строк кода приведут к ошибке компиляции по причине неправильного приведения типов? Вроде тему понял, но все верные ответы не могу отметить...

int i = 3;
byte b = 1;
byte b1 = 1 + 2; // line 1
short s = 304111; // line 2
short s1 = (short) 304111; // line 3
b = b1 + 1; // line 4
b = (byte) (b1 + 1); // line 5
b = -b; // line 6
b = (byte) -b; // line 7
b1 *= 2; // line 8
b = i; // line 9
b = (byte) i;
b += i++;
float f = 1.1f;
b /= f;
Голосование за лучший ответ
Оракул Оракул (62095) 2 года назад
2 4 6 9
ИванУченик (195) 2 года назад
Большое спасибо. Если не сложно, скажите пожалуйста, почему в 4 и 6 ошибки? Там же byte не меняется и значения доступные для byte...
ИванУченик (195) 2 года назад
Разобрался. Это потому что byte стоит ниже int и все действия с ним превратят переменную в int. Фуххх... Я не знаю кто Вы, но сколько учусь, часто вижу Ваши ответы, которые не раз выручали!
Оракул Оракул (62095) Иван, почти, но не совсем так. Ошибка, потому что все арифметические операции + - * / по умолчанию приводят результат к int, даже если складывать два byte или short. Поэтому результат без каста записать в byte нельзя
Похожие вопросы