Precedence operator - 1

"Hai, Bilaabo!"

"Bilaabo seneng menehi salam marang kancane!"

"Dina iki Bilaabo bakal ngandhani sampeyan babagan precedence operator. Nanging luwih dhisik dheweke bakal ngandhani babagan operator kasebut."

"Operator apa sing sampeyan gunakake iki?"

"Satemene, sampeyan wis kenal karo dheweke. Sampeyan bisa uga ora ngerti yen dheweke diarani operator."

"Contone, kita duwe ekspresi  c = a + b; "

"Duwe rong operator: operator tambahan lan operator penugasan."

"Ing tembung liyane, operator mung tandha matematika? Kaya perkalian, divisi, lan tambahan?"

"Ya bener. Nanging, ana bedane."

"Aku ora bakal nemtokake operator kanggo sampeyan: definisi ora bakal nggawe sampeyan luwih pinter. Iku luwih apik kanggo ndeleng wong ing tumindak. Operator bisa dipérang dadi sawetara klompok, kang kita bakal nliti saiki."

1) " Operator Matematika "

Simbol Tuladha jeneng Deskripsi (apa sing ditindakake)
+ a + b Operator tambahan Operator tambahan.
- c - d Operator pangurangan Subtracts nomer loro saka pisanan.
* a * t Operator multiplikasi Multiplies loro nomer.
/ a / b Operator divisi Dibagi nomer pisanan karo nomer loro.
% c % d Dibagi nomer pisanan karo nomer loro. Ngitung sisa sawise dibagi nomer pisanan karo nomer loro.
- -a Utawa minus Ngganti tandha variabel dadi ngelawan.
Plus kanggo minus, lan minus kanggo plus.
+ +a Unary plus Ora ngowahi apa-apa. Iki ditambahake kanggo pujian operator unary minus. Iku mung kanggo katon.

"Aku kenal iki saka sekolah. Perangkat kukuhku kalebu kursus sekolah."

"Nanging, apa ana tandha persen kasebut, sawetara jinis sihir?"

"Iku" seko sawise divisi "operator. Yen 11 dibagi 5, banjur kita njaluk 2 lan seko 1. Iki 1 bisa dipikolehi kanthi nulis 11 % 5;

"Nalika sampeyan dibagi integer ing Jawa, asil uga integer. Sisa saka operasi divisi mung digatèkaké. Yen kita dibagi 8 karo 5, kita entuk 1."

Ekspresi asil
19 / 10 1 Yen kita dibagi 19 karo 10, asile 1 karo sisa 9.
19 % 10 9 Yen kita dibagi 19 karo 10, asile 1 karo sisa 9.
2 / 5 0 Yen kita dibagi 2 karo 5,  asile 0 karo sisa 2.
16 % 2 0 Yen dibagi 16 karo 2, asile 8 kanthi sisa 0.

"Nanging apa ing jagad iki kita butuh sisa?"

"Upama sampeyan kudu mriksa apa integer genap. Banjur sampeyan bisa nulis:"

if (a % 2 == 0)

"Lan yen sampeyan kudu mriksa yen b aneh, sampeyan bisa nulis:"

if (b % 2 == 1)

"Utawa kanggo mriksa apa d bisa dibagi 3:"

if (d % 3 == 0)

"Menarik. Aku bakal ngelingi."

2)  " Operator Perbandingan "

Simbol Tuladha jeneng Deskripsi (apa sing ditindakake)
< a < b Kurang saka Priksa manawa a kurang saka b.
<= c <= d Kurang saka utawa padha karo Priksa manawa c kurang saka utawa padha karo d.
> a > b Ngungkuli Priksa manawa a luwih gedhe tinimbang b.
>= c >= d Luwih gedhe utawa padha karo Priksa manawa c luwih gedhe utawa padha karo d.
== i == j padha Priksa manawa aku padha karo j.
!= a != 0 Ora padha karo Priksa manawa a ora padha karo nol.

"Aku wis nggunakake kabeh iki."

"Lan apa prabédan utama antarane operator iki lan operator matematika?"

"Yen kita nambah rong nomer, kita entuk nomer; nanging, yen kita mbandhingake rong nomer, kita bakal bener utawa salah."

"Iku bener. Asil saka comparison punika " nilai logis " Nilai, kang, sampeyan ngerti, diwakili dening jinis boolean. Ana rong kemungkinan: bener utawa salah.

"Ya wis jelas kabeh. Aku wis ngerti."

3 ) Operator Logika

Simbol Tuladha jeneng Deskripsi (apa sing ditindakake)
&& a && b LAN Asil ekspresi kasebut bener mung nalika a lan b bener.
|| c || d UTAWA Asil ekspresi kasebut bener yen a utawa b bener. Loro-lorone utawa paling ora siji.
! !a ORA Asil ekspresi kasebut bener mung yen a salah.

"Operator logis mung bisa digunakake karo variabel utawa ekspresi boolean."

Tuladha Katrangan
boolean a = true;
boolean b = true;if (a && b)
Yen kondisi bener yen loro nilai bener
Ing tembung liyane, yen loro a lan b bener, banjur asil bener .
boolean a = true;
boolean b = false;if (a || b)
Yen kondisi bener yen paling ora siji nilai bener
Ing tembung liyane, yen a utawa b bener, banjur asil bener .
boolean b = false;

if (!b)

Kondisi yen bener yen b ora bener.
Ing tembung liyane, yen   b iku salah , banjur asil  bener .
int a = 2, b = 3, c = 4;

if (a < b && a < c)
if ((a < b) && (a < c))

Yen a kurang saka b lan a kurang saka c, mula asil ekspresi kasebut bener.
a, b, lan c minangka wilangan bulat, nanging asil saka mbandhingake wilangan bulat yaiku nilai logis (bener, salah), tegese kita bisa nggunakake operator logis.

"Aku wis ngerti kabeh iki."

"Tenan? Ayo diterusake."

4 ) Operator bitwise

Simbol Tuladha jeneng Deskripsi (apa sing ditindakake)
& a & b LAN Bitwise AND
| c | d UTAWA Bitwise UTAWA
~ ~a ORA Bitwise ora
^ a ^ b XOR Bitwise "EKSKLUSIF UTAWA"

" Operator bitwise nindakake operasi bit-by-bit ing integer."

"Apa iku?"

"Saben nomer dituduhake minangka set bit, banjur asil diitung kaya ing ngisor iki:"

"Yen bit pisanan saka nomer loro iku 1, banjur bit pisanan asil bakal 1."

"Yen bit kaloro nomer loro iku 1, banjur bit kapindho asil bakal 1. Lan sateruse."

"Apa bener kanggo kabeh operator bitwise?"

"Iku akeh prasaja saka sing. A dicokot mung bisa duwe loro nilai, 0 lan 1, tengen?"

"Bener."

"Banjur pikirake 1 minangka bener, lan 0 minangka palsu. Operasi ing bit individu bakal meh padha karo operasi logis: "

Ekspresi logis Ekspresi bitwise
bener && bener == bener 1&1 == 1
bener && salah == salah 1&0 == 0
leres || bener == bener 1|1 == 1
leres || salah == bener 1|0 == 1
goroh || goroh = goroh 0|0 == 0
!salah == bener ~0 == 1
!bener == salah ~1 == 0

"Oh! Gampang banget."

"Ya, aja lali yen operasi bitwise nggunakake bit sing cocog saka rong nomer."

"Ya, aku elinga: bit pisanan saka siji nomer dipasangake karo bit pisanan saka kaloro, lan asil uga ditulis kanggo bit pisanan. Lan padha dadi kanggo liyane saka bit."

"Bener. Apa sampeyan duwe pitakonan liyane?"

"Apa karo XOR lan 'eksklusif utawa'?"

"Iku sepotong kue: yen nilai beda, iku bener; yen padha, iku palsu."

Ekspresi logis Ekspresi bitwise
bener XOR bener == salah 1 ^ 1 == 0
palsu XOR palsu == palsu 0 ^ 0 == 0
bener XOR salah == bener 1 ^ 0 == 1
palsu XOR bener == bener 0 ^ 1 == 1

Mangkene sawetara conto liyane saka operasi bitwise:

Tuladha Angka minangka bit Asil minangka bit asil
5 & 3 0000010 1  & 0000001 1 0000000 1 1
7 & 2 000001 1 1 & 000000 1 0 00000010 2
5 | 9 00000 1 0 1  | 0000 1 001 _ 00001101 13
5 ^ 9 00000 101  ^ 00001001 0000 1100 12
~9 ~ 00001001 11110110 246

"Matur nuwun, Bilaabo. Saiki aku ngerti."

"Ana siji klompok operator bitwise, operator shift:"

5) " Operator Shift "

Simbol Tuladha jeneng Deskripsi (apa sing ditindakake)
>> a >> b shift tengen Nggeser bit saka nomer a menyang tengen dening b digit.
<< c << d shift ngiwa Nggeser bit saka angka c menyang ngiwa dening d digit.
>>> a >>> 2 unsigned shift tengen Nggeser bit angka a menyang tengen kanthi 2 digit.

"Apa jenis sihir dalan iki?"

"Satemene kabeh pancen prasaja. Priksa:"

Tuladha Angka minangka bit Asil minangka bit asil
10 >> 1 0000 101 0 >> 1 00000 101 5
10 >> 2 0000 101 0 >> 2 000000 10 2
10 << 1 0000 101 0 << 1 000 101 00 20
10 << 2 0000 101 0 << 2 00 101 000 40

"Ngoper bit nomer ngiwa karo 1 iku padha karo multiplying nomer karo 2. Shifting dening rong digit padha karo pingan dening 4, dening telung digit - pingan dening 8, lan sateruse."

"Ngoper nengen cocog karo dibagi 2, 4, 8, 16, lsp."

"Nanging apa bedane antarane >>> lan >> operator?"

"Dheweke beda-beda nalika nggarap angka negatif. Iki amarga  nomer sing ditandatangani nggunakake bit paling kiwa kanggo nunjukake tandha kasebut. Akibaté, nomer negatif mandheg dadi negatif nalika pindhah menyang sisih tengen. Dadi, padha teka karo rong operator sing beda. Cek opo iki :"

Ekspresi asil Katrangan
1 000 1010 >> 1 11 000 101 Nomer negatif tetep negatif.
Kanggo nomer negatif, bit mlebu diisi karo 1s.
1 000 1010 >> 2 111 000 10
1 000 1010 >> 3 1111 000 1
1 000 1010 >>> 1 01 000 101 Nomer negatif ora negatif maneh. Kanggo nomer negatif, bit mlebu diisi karo 0s.
1 000 1010 >>> 2 001 000 10
1 000 1010 >>> 3 0001 000 1

"Pergeseran ora siklik. Bit sing ngluwihi pinggir kiwa utawa tengen nomer mung dibuwang."

6) " Operator Tugas "

"Aku wis ngerti tugas apa. Nanging kok sampeyan ngomong 'operator'?"

"Amarga ana sawetara ☺"

Operator Opo artine kuwi
a += b; a = a + b;
a -= b; a = a - b;
a *= b; a = a * b;
a %= b; a = a % b;
a |= b; a = a | b;
a &= b; a = a & b;

"Aku mikir sampeyan entuk logika."

7) " Operator Tambah lan Ngurangi "

Notasi Tuladha Katrangan
++ a++;
++b;
Nambah nomer kanthi 1.
-- d--;
--i;
Ngurangi angka utawa variabel kanthi 1.

"Apa ana prabédan antarane sijine loro pratandha minus sadurunge utawa sawise variabel?"

"Ya, ana, sanajan ora gedhe banget. Yen variabel karo salah siji operator iki minangka bagean saka ekspresi utawa tugas, mula ana bedane. Aku luwih seneng nuduhake sampeyan kanthi conto: "

Tuladha Apa pancene kedadeyan Katrangan
int a = 3;
int b = ++a;
int a = 3;
a = a + 1;
int b = a;
a pisanan tambah dening 1, lan banjur digunakake ing expression.
int a = 3;
int b = a++;
int a = 3;
int b = a;
a = a + 1;
a pisanan digunakake ing ekspresi, banjur mundhak 1.
int a = 3;
return a++;
int a = 3;
int result = a;
a = a + 1;
return result;
Fungsi kasebut bakal ngasilake 3, nanging nilai a bakal ditambah 1.
int x = 5;
x = ++x + ++x;
int x = 5;
int a = x + 1;// The first term is 6
x = a;
int b = x + 1;// The second term is 7
x = b;
x = a + b;
Asil ing kene yaiku 13. Kaping pisanan, x bakal nambah 1, lan nilai iki bakal ngganti istilah pisanan, banjur x bakal nambah maneh 1.

"Wah! Apik tenan!"

"Aku seneng sampeyan seneng. Nanging, yen ora ana ekspresi utawa tugas, mula ora ana bedane:"

"x++ padha karo x = x + 1."

"++x padha karo x = x + 1."

"Aku bakal tetep ing pikiran. Thanks, Bilaabo."

8)  " Operator Ternary "

"Operator iki ora mung nggunakake siji utawa loro variabel utawa ekspresi. Iki nggunakake telung variabel utawa ekspresi bebarengan: "

Notasi Kode sing padha:
a ? b : c; if (a)
b
else
c
int min = a < b ? a : b; if (a < b)
min = a;
else
min = b;
return a != null ? a.length : 0; if (a != null)
return a.length;
else
return 0;

"Inggih, punika super trep."

"Ya. Lan kompak lan kode bisa diwaca. Seneng nggunakake!"

9) " Liyane "

"Ora ketompo carane ngatur koleksi musik sampeyan, sampeyan isih kudu nggawe folder "Miscellaneous".

"Ya, sapa wae sing kudu nggolongake musik mesthi setuju."

"Dadi, ana telung operator liyane sing arep dakcritakake:"

Notasi Tuladha Katrangan
() (a + b) * c Kurung nambah precedence operator.
Bab-bab ing kurung dieksekusi dhisik.
[] c [i] = c [i + 1]; Entuk unsur array kanthi indeks.
. int n = a.length; " Operator titik " ngakses variabel lan metode obyek.

"Lan, pungkasane, iki tabel sing ngringkes prioritas operator:"

Operator Tuladha
Precedence paling dhuwur (operator dieksekusi miturut urutan ing tabel iki)
()
[]
.
(a + b)
c [i] = c [i] + 1
++
--
~
!
+
-
i++; ++i;
--j; a--;
~c
!f
return +a;
return -a;
*
/
%
a * b
c / d
a % b
+
-
a + b
c - d
String s = "count"+"35";
>>
<<
>>>
a >> 3
b << 2
c >>> 3
<
<=
>
>=
a < b
a <= b
c > b
c >= b
==
!=
a == 3
a != 0
& a & 7
^ a ^ b
| a | b
&& (a < b) && (a < c)
|| (b != 0) || (c != 0)
? : = a > 0 ? a : -a;
=
*=, /=, %=
-=, +=
<<=. >>=, >>>=
&=, ^=. |=
Precedence paling murah (dilaksanakake pungkasan)