Logika Boolean yang Kompleks
Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 9 dari 66.
Logika Boolean bisa menjadi rumit saat menggabungkan beberapa kondisi. Memahami prioritas operator dan menggunakan tanda kurung membantu kamu menulis ekspresi yang jelas dan benar.
Urutan prioritas operator boolean di C# adalah:
- NOT (!)
- AND (&&)
- OR (||)
Berikut contoh ekspresi boolean yang kompleks:
bool isValid = age >= 18 && (score > 70 || hasPriorExperience) && !isBlacklisted;Gunakan Hukum De Morgan untuk menyederhanakan negasi yang rumit:
// Alih-alih:
if (!(age >= 18 && score > 70))
{
// Ini setara dengan:
if (age < 18 || score <= 70)
{
Console.WriteLine("Not eligible");
}
}Evaluasi short-circuit: Dengan && dan ||, C# hanya mengevaluasi hal yang diperlukan:
// Jika user bernilai null, C# tidak akan mengevaluasi kondisi kedua
if (user != null && user.IsActive)
{
Console.WriteLine("Active user");
}Gunakan tanda kurung secara eksplisit agar lebih jelas, meskipun sebenarnya tidak wajib:
bool result = (isWeekend || isHoliday) && (hour > 10 && hour < 20);Tantangan
SedangBuat method bernama determineAccess yang menentukan apakah pengguna memiliki akses ke sistem berdasarkan aturan berikut:
- Menerima lima parameter:
- isAdmin (bool): Apakah pengguna adalah administrator
- isLoggedIn (bool): Apakah pengguna sedang masuk
- timeOfDay (int): Jam saat ini (0-23)
- isMaintenanceMode (bool): Apakah sistem sedang dalam mode pemeliharaan
- hasEmergencyAccess (bool): Apakah pengguna memiliki akses darurat
- Mengembalikan true jika SALAH SATU kondisi berikut terpenuhi:
- Pengguna adalah admin DAN sedang masuk
- Waktu berada dalam jam kerja (9-17, termasuk kedua batasnya) DAN pengguna sedang masuk DAN sistem TIDAK dalam mode pemeliharaan
- Pengguna memiliki akses darurat
Coba sendiri
public class DetermineAccess
{
// Implementasikan method determineAccess
public static bool determineAccess(bool isAdmin, bool isLoggedIn, int timeOfDay, bool isMaintenanceMode, bool hasEmergencyAccess)
{
// Tulis kodemu di sini
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1array Multidimensi
Dasar-Dasar array 2DMendeklarasikan dan Menginisialisasi array 2DMengakses Elemen array 2DPerulangan Bersarang dengan array 2Darray BergerigiOperasi Matriks UmumRangkuman: array Multidimensi4Teknik Alur Kontrol
Pengembalian DiniKlausa PenjagaPernyataan Lompatan (goto)Break dan ContinueMeratakan Percabangan Bersarang7Operator Logika Lanjutan
Evaluasi Hubung SingkatOperator Logika PercabanganPrioritas OperatorRingkasan Operator Lanjutan2Pengambilan Keputusan Tingkat Lanjut
Beberapa KondisiLogika Boolean yang KompleksPerbandingan If dan SwitchPernyataan Switch BersarangUlasan: Pengambilan Keputusan Tingkat Lanjut5Penanganan Exception
Dasar Try-CatchJenis ExceptionBeberapa Blok CatchBekerja dengan fileBlok FinallyUsing vs. Try-FinallyException KustomRingkasan: Penanganan error3Peningkatan Loop
Performa LoopIterasi yang KompleksSetiap Jenis LoopRefactoring LoopRangkuman: Loop yang Dioptimalkan6Penanganan Null
Dasar Referensi NullTipe Nilai NullablePola Pemeriksaan NullPemrograman DefensifRingkasan: Keamanan NullLatihan sendiri: Compiler C# online