Hi! Pawulangan dina iki ora bakal dawa banget, nanging mesthi bakal migunani :) Kita bakal ngomong babagan sing diarani operator ternary .
Ternary tegese " kasusun saka telung bagean ". Iku alternatif kanggo
Miturut cara, kurung watara kondisi ora dibutuhake: kita ditambahake kanggo maca luwih. Iku uga bisa tanpa wong-wong mau:
Iki nggabungake praktik paling apik lan rekomendasi kanggo programer, sing bakal mbantu sampeyan nulis kode sing ora mung fungsional, nanging uga gampang diwaca.

if-else
statement aliran kontrol sing wis ketemu. Ayo menehi conto. Upamane ana sing mutusake menyang film sing dirating R (ing 17 taun mbutuhake wong tuwa utawa wali diwasa). Pengantar mriksa umure ing lawang: yen wis lulus mriksa umur, dheweke diijini mlebu; yen ora, dheweke dikirim menyang omah. Ayo ngumumake Person
kelas lan mriksa iki nggunakake if-else
statement:
public class Person {
private int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse;
if (person.getAge() >= 18) {
usherResponse = "Everything is in order. Come in!";
} else {
usherResponse = "This film is not suitable for your age!";
}
System.out.println(usherResponse);
}
}
Output konsol:
"Everything is in order. Come in!"
Yen kita mbusak output console, priksa kita katon kaya iki:
if (person.getAge() >= 18) {
usherResponse = "Everything is in order. Come in!";
} else {
usherResponse = "This film is not suitable for your age!";
}
Logika prasaja banget ing kene: siji kondisi dicenthang (umur>= 18) Adhedhasar asil, variabel usherResponse
diwenehi salah siji saka rong senar kanthi respon usher. Kahanan kaya mengkono ("siji kondisi - rong kemungkinan asil") arang banget umum ing program. Lan mulane operator ternary digawe. Kita bisa nggunakake kanggo nyederhanakake mriksa menyang baris siji kode:
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse = (person.getAge() > 18) ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
System.out.println(usherResponse);
}
Mangkene carane operator iki bisa digunakake. Iki diarani operator ternary, amarga kalebu 3 komponen:
- Siji syarat (
person.getAge() > 18
) - Rong asil sing bisa ditindakake ( "Kabeh wis rapi. Ayo mlebu!" lan "Film iki ora cocog karo umur sampeyan!" )
person.getAge() > 18 ?
"Apa umur wong iki luwih saka 18?" Banjur kita nulis nilai pisanan . Nilai iki digunakake yen kondisi dievaluasi daditrue
:
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!"
Apa umur wong iki luwih saka 18? Yen ya, atur usherResponse
variabel kasebut "Kabeh wis rapi. Ayo mlebu!" Sabanjure ana :
simbol " " lan nilai kapindho . Nilai iki digunakake yen kondisi dievaluasi dadifalse
:
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
Apa umur wong iki luwih saka 18? Yen ya, atur usherResponse
variabel kasebut "Kabeh wis rapi. Ayo mlebu!" . Yen ora, setel usherResponse
variabel menyang "Film iki ora cocok kanggo umur sampeyan!" Umumé, iki minangka logika operator ternary. syarate? asil 1: asil 2 
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
System.out.println(usherResponse);
}
Dadi apa sing kudu sampeyan gunakake? Pernyataan if-else
utawa operator ternary? Ing babagan kinerja, ora ana bedane. Luwih tepate, bisa uga ana, nanging ora pati penting. Pertimbangan paling gedhe ing kene yaiku keterbacaan kode sampeyan. Kode sing sampeyan tulis ora mung kudu bisa digunakake kanthi bener, nanging uga gampang diwaca . Sawise kabeh, bisa uga "diwarisake" dening programer liyane, kanca-kanca! Yen angel dimangerteni, bakal nggawe rumit karyane, lan karya sampeyan (bakal njaluk penjelasan saben 5 menit). Rekomendasi umum yaiku: yen kondisi kasebut prasaja lan gampang diverifikasi, sampeyan bisa nggunakake operator ternary tanpa gawe piala. Iki ngidini sampeyan nyuda jumlah kode lan nomerif-else
statements (lan bisa uga ana akeh). Nanging yen kondisi kasebut rumit lan kalebu pirang-pirang langkah, luwih becik nggunakake if-else
statement. Contone, nggunakake operator ternary bakal dadi ide sing ala ing kasus iki:
String usherResponse = (person.getAge() > 18 && (person.hasTicket() || person.hasCoupon()) && !person.hasChild()) ? "Come in!" : "You can't come in!";
Ora langsung katon apa sing kedadeyan ing kene! Kode wis dadi angel banget diwaca. Lan kabeh amarga kondisi kompleks:
- Yen ana wong sing umure luwih saka 18, duwe tiket (utawa pass gratis), lan ora duwe bocah cilik, dheweke bisa mlebu.
- Yen salah siji bagéan saka kondisi kasebut salah, mula dheweke ora bisa.
if-else
. Ya, kode kita bakal luwih gedhe, nanging bakal luwih gampang diwaca. Lan kolega sampeyan ora bakal ngadhepi sawit yen padha oleh kode iki :) Akhire, aku bisa menehi rekomendasi apik kanggo sampeyan. Kita ndemek babagan keterbacaan kode sajrone pawulangan. Buku Robert Martin "Kode Bersih", sing wis dadi klasik, darmabakti kanggo topik iki. 
GO TO FULL VERSION