Operator Logika - 1

"Halo, Amigo!"

"Saiki kita bakal duwe pelajaran cilik babagan operator logis."

"Operator logis apa sing sampeyan ngerti?"

— UTAWA (||), LAN (&&), ORA(!)

"Yep. Good job. Lan apa sampeyan kelingan carane wong-wong mau?"

"Ya."

"UTAWA ngasilake bener nalika paling ora siji operan bener."

"AND ngasilake bener nalika loro operan bener."

"Ora owah bener dadi salah, lan salah dadi bener."

"Bener. Lan ing urutan apa operator dievaluasi ing ekspresi iki?"

boolean a = true;
boolean b = false;
boolean c = true;

boolean result = a && b || !c && b || !a;

"Iki kabeh prasaja banget."

"Kaping pisanan, NOT (!), banjur AND (&&), banjur UTAWA (||) ing pungkasan."

Yen kita nambahake kurung, kita bakal entuk:

boolean a = true;
boolean b = false;
boolean c = true;

boolean result = (a && b) || ((!c) && b) || (!a);

"Iku kabeh bener, wis rampung. Lan apa asil?"

— 1) (a && b) == (bener && salah) == salah

2) ((!c) && b) == (salah && salah) == salah

3) (!a) == palsu

4) goroh || goroh || goroh == salah

"Asil iku palsu."

"Kayane sampeyan ngerti topik kasebut kanthi sampurna. Banjur aku bakal ngandhani sawetara rahasia cilik."

"Kaping pisanan, ekspresi logis dievaluasi saka kiwa menyang tengen."

"Kapindho, evaluasi short-circuit digunakake ing kene (petungan mung dileksanakake yen perlu). Yen asil final wis dikenal saka ngevaluasi bagean saka expression, banjur liyane saka expression ora dievaluasi."

Tuladha
boolean result = (true && false) || (true && true) || (true && false);

"Ekspresi iki dipérang dadi telung bagéan sing dipisahake karo operator OR (||).

"Yen paling ora siji bagean sing bener, mula jawabane bener lan ora ana sing kudu dipikirake. Mula, ekspresi kasebut dievaluasi kaya mangkene: "

1)  Evaluasi perangan kapisan:  (bener && salah) == salah

2)  Evaluasi perangan kapindho:  (bener && bener) == bener

3) Kita ora ngevaluasi bagean katelu, amarga wis jelas yen jawabane bakal bener .

"Pendekatan iki uga disebut evaluasi kesed."

"Oke. Lan apa istimewane?"

"Ora ana-nganti sampeyan miwiti nelpon metode ing ekspresi kasebut. Yen bagean saka ekspresi kasebut dilewati, mula metode ing bagean sing dilewati ora bakal diarani."

"Nanging pendekatan iki wis dadi umum banget. Iki sebabe: "

Tuladha:
Job job = null;

if (job != null && job.isDone())
{
…
}

"Yen proyek null nalika expression dievaluasi, banjur job.isDone () telpon ora bakal kelakon!"

"Pancen, bagean pisanan saka ekspresi kasebut salah, sing diikuti karo AND (&&). Dadi, kabeh ekspresi kasebut bakal dingerteni palsu, lan bagean liya ora perlu."

"Persis. Iki teknik sing apik, ta?"

"Ya wis."