CodeGym /Blog Jawa /Acak /Operator Ternary
John Squirrels
tingkat
San Francisco

Operator Ternary

Diterbitake ing grup
Hi! Pawulangan dina iki ora bakal dawa banget, nanging mesthi bakal migunani :) Kita bakal ngomong babagan sing diarani operator ternary . Operator Ternary - 1Ternary tegese " kasusun saka telung bagean ". Iku alternatif kanggo if-elsestatement 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 Personkelas lan mriksa iki nggunakake if-elsestatement:

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 usherResponsediwenehi 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!" )
Kaping pisanan, kita nulis kondisi kasebut, banjur diwenehi tandha pitakon.

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 Operator Ternary - 2 Miturut cara, kurung watara kondisi ora dibutuhake: kita ditambahake kanggo maca luwih. Iku uga bisa tanpa wong-wong mau:

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-elseutawa 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-elsestatements (lan bisa uga ana akeh). Nanging yen kondisi kasebut rumit lan kalebu pirang-pirang langkah, luwih becik nggunakake if-elsestatement. 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.
Ing kene, luwih becik digunakake 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. Operator Ternary - 4Iki nggabungake praktik paling apik lan rekomendasi kanggo programer, sing bakal mbantu sampeyan nulis kode sing ora mung fungsional, nanging uga gampang diwaca.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION