• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Post-fix i pre-fix

VPS Starter Arubacloud
+2 głosów
208 wizyt
pytanie zadane 14 maja 2022 w Java przez Mati323 Nowicjusz (210 p.)
Hej. Czy mógłby mi ktoś wytłumaczyć kiedy można stosować a kiedy trzeba operatory post i pre ?

Oraz jak to działa że operator post najpierw zwraca a później zmienia a pre na odwrót dlaczego tak właśnie ?
komentarz 14 maja 2022 przez Mati323 Nowicjusz (210 p.)
Ok dzięki

2 odpowiedzi

+1 głos
odpowiedź 14 maja 2022 przez Wiciorny Ekspert (269,120 p.)

 kiedy można stosować a kiedy trzeba operatory post i pre 

Nie ma pojęcia "Trzeba" -> to nie jest wymóg, jeśli w programie istnieje POTRZEBA używania post/pre fixu to wtedy należy z nich korzystać, dla przykładu pętla jest takim przykładem, aby ułatwić jej działanie w starym stylu kiedy chcemy określić jakiś zakres i co się ma dziać ze zmienną np .

for (int i=0;i<5;i++) // z postfixem dla zmiennej i

Co to oznacza? Że zmienna i - będzie zwiększona wartością dopiero po upływie pierwszej pętli   Natomiast jeśli zmienna jest inkrementowana jako prefix, to jej wartość jest zwiększona natychmiastowo zobacz przykład: 

int i = 1, j; // ustawiamy i na 1 

j = ++i; // jeśli następnie wypiszesz zmienna j wynikiem i oraz j jest 2 

po wypisaniu
wynik to :  i = 2 and  j = 2

dlaczego? Bo zmienna i w aktualnym wykonaniu jest zwiększona o 1. 
Jeśli zrobisz post inkrementacje  to wyniki będą zgoła inne : 

int i = 1, j; 
j = i++; // najpierw przypisze zmienna i do j potem zwiększy i

wynik:
 zmienne :  i=2 and j = 1

// teraz zauważ ze zmienna j ma wartość 1 

czyli zwiększenie wartosci zmiennej i następuje po przypisaniu jej do zmiennej J, a nie przed. Dopiero w następnym wykonaniu  przypisując zmienna i do jakiejś zmiennej ma ona wartość o 1 większą.
Dlaczego? 

BO LICZY SIĘ KOLEJNOŚĆ WYKONANIA OPERATORÓW W JAVIE, A KOD CZYTANY JEST PRZEZ KOMPILATOR POKOLEI OD LEWEJ DO PRAWEJ. 
Stąd w zapisie ++ zmienna ( operator ++ występuje przed samą wartością zmiennej), natomiast w zapisie zmienna ++ ( operator występuje po zmiennej, więc jako pierwsza zostanie odczytana wartość ZMIENNEJ samej) natomiast w porównaniu i przypisaniu to wina tego ze znak równa się oczekuje na 1 element na stosie.


Postfix i prefix może również być zmniejszeniem zmienne np :

--zmienna;
zmienna--; // analogicznie zmniejsza wartosc po aktualnej lini 

 

0 głosów
odpowiedź 19 maja 2022 przez Czarus0 Obywatel (1,040 p.)
Cześć! Nie ma żadnej zasady, kiedy stosować post-, a kiedy preinkrementacje. Wszystko zależy od aktualnej potrzeby.

Co do zasady dlaczego tak działa, to chyba trzeba mieć jakieś podstawy językowe, z których tworzymy wyższe struktury. Są to pewnego rodzaju założenia, umowy, które trzeba przyjąć jako fundament.

Pozdrawiam!

Podobne pytania

+1 głos
1 odpowiedź 607 wizyt
pytanie zadane 2 lutego 2017 w C i C++ przez Dexterim Dyskutant (8,370 p.)
0 głosów
1 odpowiedź 499 wizyt
pytanie zadane 19 listopada 2015 w C i C++ przez krzakurts Obywatel (1,470 p.)

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...