ostatnio na rozmowie kwalifikacyjnej dostałem bardzo ciekawy kod. Zawsze byłem przekonany, że kompilator javy nie pozwoli wykonać przypisania w ifie np if( zmienna = inna zmienna). I dostałem następujący kod:
boolean b = false;
boolean b2 = true;
if(b = (b = b2)){
System.out.println("TRUE");
}else{
System.out.println("FALSE");
}
I drugi ciekawy fragment:
boolean b = false;
if(b == (b = true)){
System.out.println("TRUE");
}else{
System.out.println("FALSE");
}
wynik:
1 - true
2 - false (z czego można odnieść wrażenie że b jest różne od b)