Pętla for - różnica

0

Na czym polega różnica w inkrementacji w pętli for skoro wyniki są takie same? Mogę prosić o wyjaśnienie?
for(int s=0; s<3; s++ ){
System.out.println(s);
}
for(int a=0; a<3;++a){
System.out.println(a);
}

0

Operator inkrementacji (rzeczywiście formalnie różny) jest w "czystym" kontekście (tj nie jest jednocześnie użyty jako wartość), więc nie ma różnicy efektu

0

Zrób tak:

    int s = 0, a = 0;
    for(int i=0; i<3; ++i ){
      System.out.println(s++);
    }
    System.out.println();
    for(int i=0; i<3;++i){
       System.out.println(++a);
    }

To Zobaczysz różnicę, w pierwszym przypadku jest post inkrementacja, a w drugim pre.

0

Tym bardziej jest dla mnie niezrozumiałe po co używać for(int i=0; i<3; ++i ) skoro można użyć for(int i=0; i<3; i++ ) i efekt jest ten sam?

0

Zobacz tu: https://stackoverflow.com/questions/2371118/how-do-the-post-increment-i-and-pre-increment-i-operators-work-in-java#2371162 .
Efekt jest ten sam, po wykonaniu ++i, lub i++, w następnej linijce i ma taką samą wartość, ale jeśli Używasz, tych ++i i i++ w wyrażeniach, to mają inne wartości (w momencie użycia).

0
luki25591 napisał(a):

Tym bardziej jest dla mnie niezrozumiałe po co używać for(int i=0; i<3; ++i ) skoro można użyć for(int i=0; i<3; i++ ) i efekt jest ten sam?

W pętli może i wyniki są takie same, ale ogólnie to wyrażenie "++i" najpierw inkrementuję zmienną "i", a potem jej używa, natomiast wyrażenie "i++" najpierw używa zmienną "i", dopiero potem ją inkrementuję.

1

Czyli rozumiem, że w pętli nie ma znaczenia czy użyję inkrementacji czy post inkrementacji. Dopiero w wyrażeniu ma znaczenie?

0

Dzięki za wyjaśnienie. Pozdrawiam.

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