Operátorok
Aritmetikai operátorok
Az aritmetikai (számolási) operátorokkal meglepetésszerűen számolni tudunk, azaz velük matematikai műveletek hajthatók végre. Nézzünk meg gyorsan egy 4 alapműveletes, futtatható Java-kódot:
public class Main {
public static void main(String[] args) {
float a = 3;
int b = 2;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
}
}
Végeredmény:
5.0
1.0
6.0
1.5
További érdekes lehetőség a maradékképzés operátora, amelyet a Java-nyelvben a % jel szimbolizál. Az alábbi kódban az osztás egész számú eredménye és maradéka is kiírásra kerül:
public class Main {
public static void main(String[] args) {
int a = 84;
int b = 9;
int maradek = a % b;
System.out.println("Az osztás eredménye: " + a / b);
System.out.println("Az osztás maradéka: " + maradek);
}
}
Végeredmény:
9
3
A programozás során gyakran van szükség olyan átmeneti tárolóadatra, amelynek lépésenként változik az értéke. Például egy adott számtartományban keresünk egy valamilyen feltételnek megfelelő számot. Ilyen ciklikus műveletek elvégzésére használhatjuk fel az úgynevezett for ciklust, amelynek részletes működését ugyan majd egy másik fejezetben mutatjuk meg, ám most kiválóan szemléltethetjük rajta a lépésenkénti értékváltozást. A kiindulás a következő: deklarálunk egy változót…
int a = 10;
..majd megnöveljük 1-gyel értékét. Ezt kétféleképpen is meg tudjuk oldani:
a = a + 1; vagy a += 1;
public class Main {
public static void main(String[] args) {
int a = 10;
a += 1;
System.out.println(a);
}
}
Végeredmény:
11
Ennél egy kicsit praktikusabb a következő operátor:
a++;
public class Main {
public static void main(String[] args) {
int a = 10;
a++;
System.out.println(a);
}
}
Végeredmény:
11
Most nézzük meg ezen operátor működését egy for ciklusban! Az algoritmus 10-től 20-ig kiírja egymás alá a számokat:
public class Main {
public static void main(String[] args) {
for(int i = 10; i <= 20; i++){
System.out.println(i);
}
}
}
Végeredmény:
10
11
12
13
14
15
16
17
18
19
20
Természetesen lehetőségünk van csökkenő léptetésre is a -- operátor használatával:
public class Main {
public static void main(String[] args) {
for(int i = 20; i >= 10; i--){
System.out.println(i);
}
}
}
Végeredmény:
20
19
18
17
16
15
14
13
12
11
10
A léptető operátorok használatát bonyolítja az is, hogy az operátor prefix (++a) vagy postfix (a++) pozícióban van-e. Prefix pozíció esetén az értékváltás azonnal megtörténik…
int a = 10;
++a; //itt történik az értékváltás: 11
…postfix pozíció esetén viszont csak abban a pillanatban, amikor a változó felhasználásra kerül, például:
int a = 10;
a++; //itt NEM történik értékváltás
System.out.println(a); //itt történik az értékváltás: 11
Nézzünk a fentiek demonstrálására 2 futtatható kódot!
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = a + b++;
System.out.println(c);
System.out.println(b);
}
}
Végeredmény:
15
6
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = a + ++b;
System.out.println(c);
System.out.println(b);
}
}
Végeredmény:
16
6
Természetesen mindez működik csökkenő léptetés eseteiben is:
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = a + b--;
System.out.println(c);
System.out.println(b);
}
}
Végeredmény:
15
4
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 5;
int c = a + --b;
System.out.println(c);
System.out.println(b);
}
}
Végeredmény:
14
4