Czy można przypisywać wartość w instrukcji warunkowej if?

0
        int a = 3;
        int b = 5;

        if (a = b) {
            System.out.println(a);
        } else
            System.out.println(b);

Rozmowa o pracę na testera/juniora, pierwsze zadanie. Czy można przypisywać wartość w instrukcji warunkowej if w Javie? Ja stwierdziłem, że nie można.
A moich dwóch rekruterów, że można i wyjdzie wartość typu boolean, bo wartość jest dodatnia. Myliłem się? :)

1

Tak trudno odpalić jakiekolwiek IDE i spróbować to skompilować?
EDIT: Żeby nie było że tylko się czepiam a nie odpowiadam- w tym konkretnym przypadku program się nie skompiluje. Co innego coś takiego:

 if ((a = b) == 2) 
0

jak dla mnie kompilator wywali błąd

edit: może chodziło im o JavaScript? :D

0

dlatego próbuję zrozumieć, dlaczego rekruterzy twierdzili inaczej? może w innych językach niż Java, coś takiego jest możliwe?

0

jeśli chodzi o zwykłe przypisanie do zmiennej to jak najbardziej można

  int a = 3;
  int b = 5;
 int przypisz;
 
        if ((przypisz = a) == b) {
            System.out.println(a);
        } else
            System.out.println(b);

3

Koledzy się wypowiadali lekko nieściśle.

W Javie można przypisać wartość do zmiennej w warunku ifa, ale wartość warunku musi być typu bool więc przypisanie, które podałeś nie zadziała, gdyż zwraca int. Jednakowoż takie przypisanie:

bool a = true;
bool b = false;

if (a = b) {}

Zadziała, gdyż wartość zwrócona przez a = b to bool.

1 użytkowników online, w tym zalogowanych: 0, gości: 1