Kiedy {} są wymagane w pętli for

0

Pisałem programik porównujący czasy wykonania pewnych operacji i dowiedziałem się od kompilatora, że poniższa składnia jest niepoprawna:

for(int i=0;i<100000;i++)
    String s="";

Trzeba napisać tak:

for(int i=0;i<100000;i++){
    String s="";
}

Znacie inne sytuacje, że w pętli for trzeba użyć nawiasów klamrowych mimo, że zawiera tylko jedną instrukcję.

0

Powyzsza operacja jest niepoprawna, poniewaz deklaracja musi byc dokonana wewnatrz bloku kodu.

W twoim przypadku zapis

for(...)
String s = "";

nie ma zadnego sensu, poniewaz ta zmienna nigdy nie moze byc uzyta.

0

Zarówno if, if/else jak i while, do/while i for mogą być deklarowane bez nawiasów klamrowych wtedy blokiem wykonywanym przez instrukcję jest pierwsze polenienie poniżej instrukcji. Jednakże instrukcją tą nie może być deklarowanie zmiennej.

0

@Koziołek. dzięki
@Luno, nie doczytałeś postu. Operacja

for(...)
   String s="";

ma sens jeżeli mierzę czas tworzenia obiektów.

0

Racja. Jednak albo kompilator albo JIT to zoptymalizuje, czytaj: wywali

0

Sądząc z czasu wykonania, to ani kompilator, ani JIT tego nie wywalił.

0

@bo jak chcesz liczyć czas wykonania metody czy tworzenia obiektów to polecam zobaczyć http://code.google.com/p/javasimon to jest aspektowy profiler, który dość dobrze się sprawuje.

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