Pętla for - różnica

Pętla for - różnica
L2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
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);
}

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
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

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
0

Zrób tak:

Kopiuj
    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.

L2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
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?

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5025
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).

HE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 88
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ę.

L2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
1

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

L2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Dzięki za wyjaśnienie. Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.