Menggunakan Not Operator di If Condition di Java

1. Perkenalan

Dalam pernyataan if-else Java, kita dapat mengambil tindakan tertentu saat ekspresi benar , dan alternatif jika salah . Dalam tutorial ini, kita akan belajar tentang cara membalikkan logika menggunakan operator not .

2. S tatement if-else

Mari kita mulai dengan pernyataan if-else sederhana :

boolean isValid = true; if (isValid) { System.out.println("Valid"); } else { System.out.println("Invalid"); }

Bagaimana jika program kita hanya perlu menangani kasus negatif? Bagaimana kita menulis ulang contoh di atas?

Salah satu opsinya adalah dengan menghapus kode di blok if :

boolean isValid = true; if (isValid) { } else { System.out.println("Invalid"); }

Namun, blok if yang kosong terlihat seperti kode yang tidak lengkap, dan tampaknya merupakan cara bertele-tele untuk menangani hanya kondisi negatif. Sebagai gantinya, kami mungkin mencoba menguji jika ekspresi logis kami bernilai salah :

boolean isValid = true; if (isValid == false) { System.out.println("Invalid"); }

Versi di atas relatif mudah dibaca, meskipun mungkin lebih sulit dilakukan jika ekspresi logika lebih kompleks. Java memiliki alternatif bagi kami, dalam bentuk operator not :

boolean isValid = true; if (!isValid) { System.out.println("Invalid"); }

3. Bukan Operator

The bukan operator adalah operator logis, yang diwakili di Jawa oleh ! simbol. Ini adalah operator unary yang menggunakan nilai boolean sebagai operannya. The tidak Operator bekerja dengan membalik (atau meniadakan) nilai operan nya .

3.1. Menerapkan bukan Operator ke Nilai Boolean

Saat diterapkan ke nilai boolean, operator not berubah true menjadi false dan false menjadi true .

Sebagai contoh:

System.out.println(!true); // prints false System.out.println(!false); // prints true System.out.println(!!false); // prints false

3.2. Menerapkan bukan Operator ke Boolean Expression

Karena not adalah operator unary, jika Anda ingin bukan hasil dari ekspresi, Anda perlu mengapit ekspresi tersebut dalam tanda kurung untuk mendapatkan jawaban yang benar. Ekspresi dalam tanda kurung dievaluasi terlebih dahulu dan kemudian operator not membalikkan hasilnya.

Sebagai contoh:

int count = 2; System.out.println(!(count > 2)); // prints true System.out.println(!(count <= 2)); // prints false
boolean x = true; boolean y = false; System.out.println(!(x && y)); // prints true System.out.println(!(x || y)); // prints false 

Kita harus mencatat bahwa ketika meniadakan ekspresi, hukum De Morgan ikut bermain. Dengan kata lain, setiap istilah dalam ekspresi dinegasikan dan operatornya dibalik. Ini dapat membantu kita menyederhanakan ekspresi yang lebih sulit dibaca.

Sebagai contoh:

!(x && y) is same as !x || !y !(x || y) is same as !x && !y !(a <3 && b == 10) is same as a>= 3 || b != 10 

4. Beberapa Kesalahan Umum

Menggunakan operator not terkadang dapat mengganggu keterbacaan kode kita. Negatif bisa lebih sulit dipahami daripada positif. Mari kita lihat beberapa contoh.

4.1. Negatif Ganda

Karena operator not adalah operator negasi, menggunakannya dengan variabel atau fungsi yang memiliki nama negatif, dapat mengakibatkan kode sulit dibaca. Ini mirip dengan bahasa alami, di mana negatif ganda sering dianggap sulit untuk dipahami.

Sebagai contoh:

if (product.isActive()) {...}

membaca lebih baik dari

if (!product.isNotActive()) {...}

Meskipun API kami mungkin tidak menyediakan metode isActive , kami dapat membuatnya untuk membantu keterbacaan.

4.2. Kondisi Kompleks

The tidak Operator kadang-kadang bisa membuat ekspresi sudah kompleks bahkan lebih sulit untuk membaca dan memahami. Jika ini terjadi, kita dapat menyederhanakan kode dengan membalik kondisi atau dengan mengekstrak metode. Mari kita lihat beberapa contoh kondisi yang dibuat rumit oleh operator not dan bagaimana kita dapat menyederhanakannya dengan membalik kondisi:

if (!true) // Complex if (false) // Simplified if (!myDate.onOrAfter(anotherDate)) // Complex if (myDate.before(anotherDate)) // Simplified if (!(a >= b)) // Complex if (a = 10 || total >= 1000)) // Complex if (count < 10 && total < 1000) // Simplified

5. Kesimpulan

Pada artikel ini, kita membahas operator not dan bagaimana itu dapat digunakan dengan nilai boolean, ekspresi dan pernyataan if-else .

Kami juga melihat beberapa kendala umum, yang disebabkan oleh penulisan ekspresi terbalik dan cara memperbaikinya.

Seperti biasa, kode sumber untuk contoh yang digunakan dalam artikel ini tersedia di GitHub.