Poniższy kod Java nie jest kompilowany.Dlaczego nie można zadeklarować zmiennych w instrukcji if?
int a = 0;
if(a == 1) {
int b = 0;
}
if(a == 1) {
b = 1;
}
Dlaczego? Nie może istnieć żadna ścieżka kodu prowadząca do programu przypisującego 1 do b
bez zadeklarowania jej jako pierwszej.
Przyszło mi do głowy, że zmienny zakres b
może być ograniczony do pierwszego oświadczenia , ale wtedy nie rozumiem dlaczego. Co, jeśli naprawdę nie chcę deklarować b
niepotrzebnie, aby poprawić wydajność? Nie lubię, gdy zmienne pozostały niewykorzystane po deklaracji.
(Można argumentować, niż mogłem po prostu zadeklarować B w drugim if
oświadczenie, w takim przypadku, proszę sobie wyobrazić, że może być w pętli gdzieś indziej.)
bo b ogłosił w pierwszym czy blok i niedostępne z bloku, deklarują B z –
Co przyszło ci do głowy ma rację. Twoja zmienna b jest tylko w zakresie dla tego konkretnego nawiasu klamrowego. – Thihara
Przeczytaj wyjaśnienie ** CAŁE **. – Aeronth