3_operacje.pdf

(79 KB) Pobierz
648110944 UNPDF
III Operacje wykonywane na zmiennych
operatory arytmetyczne
operatory inkrementacji i dekrementacji
operatory logiczne
operatory porównania
III.1 Operatory arytmetyczne
Operatory arytmetyczne słu»¡ do wykonywania operacji na zmiennych liczbowych
a) * - operator mno»enia
b) / - operator dzielenia
c) +
- operator dodawania
d) - - operator odejmowania
e) % - operator dzielenia modulo
f) ++
- operator inkrementacji (zwi¦kszania o 1)
g) -- - operator dekremenatcji (zmniejszania o 1)
Niektóre operatory arytmetyczne mo»na poł¡czy¢ z instrukcj¡ przypisania:
instrukcja ”+=”
i+=10;
jest równowa»na
i=i+10;
instrukcja ”*=”
i*=10;
jest równowa»na
i=i*10;
instrukcja ”/=”
i/=10;
jest równowa»na
i=i/10;
instrukcja ”
i%=10;
jest równowa»na
i=i%10;
Przykład zastosowania pierwszych 5 operatorów:
1
1 class operatory
2 {
3 public static void main(String args[])
4 {
5 int a,b,c;
6 a=10;
7 b=3;
8
9 c=a+b;
10 System.out.println("dodawanie c=a+b="+c);
11
12 c=b-a;
13 System.out.println("odejmowanie c=b-a="+c);
14
15 c=a*b;
16 System.out.println("dodawanie c=a*b="+c);
17
18 c=a/b;
19 System.out.println("dodawanie c=a/b="+c);
20
21 c=a%b;
22 System.out.println("dodawanie c=a%b="+c);
23 }
24 }
Uwagi:
Dzielenie dwóch liczb całkowitych daje w wyniku te» liczb¦ całkowit¡. Je±li reszta z dzielenia jest ró»na
od 0 to jest ona ucinana. Java zaokr¡gla wynik ”w dół”.
i nieco inny przykład pokazuj¡cy jak kolejno±¢ wykonywania oblicze« wpływa na wynik:
1 class operatory2
2 {
3 public static void main(String args[])
4 {
5 int a,b,c;
6 a=10;
7 b=3;
8 c=a%b%b;
9 System.out.println("dodawanie c=a%b%b="+c);
10
11 c=a/b*b;
12 System.out.println("dodawanie c=a/b*b="+c);
13
14 c=a*b/b;
15 System.out.println("dodawanie c=a*b/b="+c);
16 }
17 }
Uwagi:
w instrukcji: a%b%b mamy dwa równowa»ne operatory, wi¦c działanie jest przeprowadzane od lewej do
prawej
podobnie jest w przypadku drugim i trzecim, dlatego ich wyniki ró»ni¡ si¦
co si¦ stanie je±li u»yjemy nawiasów: a%(b%b) ? jaki bł¡d zgłosi Java?
III.1.1 Przepełnienie
Czasem mo»e doj±¢ do sytuacji, w której dokonujemy operacji arytmetycznej na zmiennej i w rezultacie staramy
si¦ przypisa¢ jej warto±¢ liczbow¡ wi¦ksz¡ ni» dopuszcza to zadeklarowany typ. Taki przypadek pokazuje poni»szy
przykład:
2
1 class overflow
2 {
3 public static void main(String args[])
4 {
5 int i=2147483647;
6 System.out.println("przepelnienie w \"gore\"");
7 System.out.println(i++);
8 System.out.println(i);
9
10 i=-2147483648;
11 System.out.println("przepelnienie w \"dol\"");
12 System.out.println(i--);
13 System.out.println(i);
14 }
15 }
III.2 Operatory inkrementacji i dekrementacji
Operatory inkrementacji i dekrementacji mog¡ wyst¦powa¢ w wersji przedrostkowej, np.:
int i=10,k;
k=++i;
k=--i;
wówczas warto±¢ zmiennej i jest najpierw zwi¦kszana(lub zmniejszana) o 1 a nast¦pnie u»ywana. Oraz w wersji
przyrostkowej, np.:
int i=10,k;
k=i++;
k=i--;
w tym przypadku zmienna i jest najpierw wykorzystana do obliczenia warto±ci wyra»enia a nast¦pnie jej warto±¢
jest zwi¦kszana(lub zmniejszana) o 1.
Przykład:
1 class ikn
2 {
3 public static void main(String args[])
4 {
5 int i=10,k;
6
7 System.out.println(++i);
8 System.out.println(i++);
9 System.out.println(i);
10
11 k=i++;
12 System.out.println(k);
13 k=++i;
14 System.out.println(k);
15
16 }
17 }
III.3 Operatory logiczne
Operatory logiczne:
&& - iloczyn (AND)
|| - suma (OR)
! - negacja (NOT)
3
Krótki przykład ich zastosowania:
1 class log
2 {
3 public static void main(String args[])
4 {
5 boolean a=true,b=false;
6
7 System.out.println("a= "+a);
8 System.out.println("b= "+b);
9
10 System.out.println("a&&b= "+(a&&b));
11 System.out.println("a||b= "+(a||b));
12 System.out.println("!b= "+(!b));
13 System.out.println("!a= "+(!a));
14 }
15 }
III.4 Operatory porównania
Operatory porównania s¡ dwuargumentowe i słu»¡ oczywi±cie do porównywania. Wynikiem jest prawda ( true )
lub fałsz( false ). W Javie operatory te s¡ zdefiniowane nast¦puj¡co:
== = true je±li argumenty s¡ równe, false je±li nie
!= = false je±li argumenty s¡ równe, true je±li nie
> = true je±li argument lewostronny jest wi¦kszy od prawostronnego
< = true je±li argument lewostronny jest mniejszy od prawostronnego
>= = true je±li argument lewoostronny jest wi¦kszy lub równy prawostronnemu
<= = true je±li argument lewostronny jest mniejszy lub równy prawostronnemu
Przykład:
1 class por
2 {
3 public static void main(String args[])
4 {
5 int a=10,b=20;
6 boolean wynik,t=false;
7
8 System.out.println("a>b= "+(a>b));
9 System.out.println("a<b= "+(a<b));
10 System.out.println("a==b= "+(a==b));
11 System.out.println("a<=b= "+(a<=b));
12 System.out.println("a>=b= "+(a>=b));
13
14 wynik=(a>b)||t;
15 System.out.println("(a>b)||t= "+wynik);
16
17 wynik=(a>b)&&t;
18 System.out.println("(a>b)&&t= "+wynik);
19
20 wynik=!((a>b)||t);
21 System.out.println("!((a>b)||t)= "+wynik);
22 }
23 }
4
Zgłoś jeśli naruszono regulamin