Какой результат выполнения данного кода:

public class Test {
    public static void main(String args[]) {
        byte a = 1;
        byte b = ++a;
        byte c = -a;
        System.out.print(a);
        System.out.print(b);
        System.out.print(c);
    }
}
Explanation

Возникнет ошибка компиляции в строке

byte c = -a;

поскольку результат выражения -a имеет тип int, несмотря на то, что операнд имеет тип byte. Это необходимо для предотвращения возможной потери точности. Например, при a=-128 полученное значение выходит за диапазон byte.

При выполнении операций инкремента/декремента подобные преобразования не осуществляются, поэтому, например, при a=127 значением выражения ++a будет -128.


Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты