Operatory
W każdym języku programowania istnieją sposoby przypisywania zmiennym wartości,
wykonywania działań matematycznych, itp. Służą do tego specjalne znaki zwane
operatorami.
Znakiem który pozwala na przypisanie zmiennej wartości jest operator przypisania
czyli znak "=":
int liczba;
liczba = 17;
Można to też troche skrócić :p
int liczba=17;
Trochę o operatorach powiedziałem już w poprzedniej lekcji, jednak postanowiłem poświęcić temu cały odzielny topic
Operatory arytmetyczne
* - operator mnożenia
/ - operator dzielenia
% - operator dzielenia modulo
+ - operator dodawania
- - operator odejmowania
Bardzo podobne operatory do powyższych to:
*= - pomnóż przez
/= - podziel przez
%= - podziel modulo przez
+= - dodaj
-= - odejmij
Zapis ten jest skróconym zapisem:
int liczba = 16;
liczba += 3;
//to samo co: liczba=liczba+3;
liczba %= 5;
//liczba ma teraz wartosc 19(mod)5 = 4
Operatory inkrementacji
Operatory inkrementacji i dekrementacji są proste
Krótki przykład zastosowania inkrementacji i deinkrementacji:
int a=2;
a++;
// postinkrementacja to tak samo jakbyśmy zapisali a=a+1; poprostu dodaje o jeden.
++a; // preinkrementacja to tak samo jak wyżej a=a+1, jednak jest tu mała różnica, ale o tym napiszę za chwilę.
a--; // postdekrementacja to prawie jak wyzej tylko tu odejmujemy o jeden a=a-1;
--a; // predekrementacja jak wyżej, a o różnicach już piszę
Jak widać rozróżniamy dwa rodzaje inkrementacji:
- postinkrementacja (a++),
- preinkrementacja (++a)
I dwa rodzaje dekrementacji:
- postdekrementacja (a--),
- predekrementacja (--a).
Czym różni się "post" od "pre" ?? Już wyjaśniam.
Otóż operator preinkremencacji (++a) zwraca wartość już zwiększoną o 1 (w tym przypadku będzie to 3) natomiast operator
postinkrementacji (a++) zwraca wartość zmiennej przed procesem inkrementacji (tutaj zwróci wartość 3 natomiast wartość zmiennej 'a' będzie już wynosić 7).
To jest chyba zrozumiałe
(jakby co to forum).
Może narazie inkrementacje jeszcze zostawcie. Dowiecie się do czego ona służy tak naprawdę w dalszych lekcjach
.
Operatory logiczne
&& - logiczne "i"
|| - logiczne "lub"
! - negacja logiczna
Operatory logiczne operują na wartościach logicznych (prawda/fałsz).
Operator && zwraca wartość true (prawda) wtedy i tylko wtedy gdy oba argumenty
mają wartość logiczną true.
np. if((a>2) && (b<5)) cout<<"extra"<<endl;
(jeśli a jest większe od 2 i b jest mniejsze od 5 to wypisz extra.) O pętlach również dowiecie się potem to tylko taki nie warty uwagi przykład
Operator || zwraca true gdy przynajmniej jeden z argumentów ma wartość true.
Operator ! neguje wartość logiczną, a więc gdy argument ma wartość true to zwraca false, a gdy false to zwraca true. Taka zamiana.
Operatory relacji
== - operator porównania
!= - operator nierówności
> - operator większości
>= - większe bądź równe
< - operator mniejszości
<= - mniejsze bądź równe
Operatory relacji zwracają wartości logiczne true/false (liczbowo 1/0).
Operator porównania == zwraca wartość true wtedy i tylko wtedy gdy oba argumenty mają tą samą wartość.
Operator nierówności != zwraca wartość true wtedy gdy oba argumenty różnią się co do wartości (nie są sobie równe).
Operator > (>=) zwraca wartość true wtedy pierwszy z argumentów (ten po lewej stronie
ma wartość większą (większą bądź równą) od drugiego argumentu.
Analogicznie działają operatory < oraz <=.
Operatory selekcji
. - operator selekcji
-> - operator selekcji wskaźników
.* - operator selekcji klas
->* - operator selekcji wskaźników klas
Powyższe operatory selekcji poruszę gdzieś pod koniec kursu.
To by było na tyle jeśli chodzi o operatory. Dziękuję za uwagę :p