Dziś przebiegłem tę zagadkę. Oczywiście, nie jest to poprawny styl, ale wciąż jestem ciekawy, dlaczego nie ma wyjścia.Dlaczego moje instrukcje if zachowują się w ten sposób?
int x = 9;
int y = 8;
int z = 7;
if (x > 9) if (y > 8) System.out.println("x > 9 and y > 8");
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
Powyższe dane nie zawierają danych wyjściowych po uruchomieniu. Ale kiedy dodamy nawiasy do instrukcji if, nagle logika zachowuje się tak, jak się spodziewam.
int x = 9;
int y = 8;
int z = 7;
if (x > 9) {
if (y > 8) System.out.println("x > 9 and y > 8");
}
else if (z >= 7) System.out.println("SHOULD OUTPUT THIS x <= 9 and z >= 7");
else
System.out.println("x <= 9 and z < 7");
Urządzenie wysyła "powinno Efekt ten x < = 9 i Z> = 7". Co tu się dzieje?
Dzięki!
haha ... Symbol "else" odnosi się do najbardziej wewnętrznego poziomu zagnieżdżenia. – Mysticial