Witam. Piszę sobie prosty program, który ma zamienić liczby na ich reprezentację binarną. Zadanie pochodzi z Thinking in Java i w treści autor pisze, aby użyć operatora trójargumentowego. Więc chciałem sobie przećwiczyć jego użycie. Napisałem coś takiego:
static int zamien (int x) {
int j = 8;
int[] tab = new int[8];
for (int i = 0; i < 8; i++, j--) {
((x % 2) == 0) ? tab[j] = 0 : tab[j] = 1;
x = x / 2;
}
}
I podkreśla mi linijkę
((x % 2) == 0) ? tab[j] = 0 : tab[j] = 1;
i pisze: "the left-hand side of an assignment must be a variable". Czemu to nie działa? Przecież ten operator to tak jakby skrócona wersja if else. A przykładowo wyrażenie: if ((x % 2) == 0)
itd. jest ok.