Sebuah program yang selalu berjalan lurus dari baris pertama sampai baris terakhir belum bisa mengambil keputusan. Toko perlu menentukan pembeli mana yang berhak atas diskon, dan aplikasi penilaian perlu memetakan angka ujian menjadi predikat. Statement if dan else di C# menyediakan mekanisme seleksi tersebut: compiler memeriksa ekspresi boolean, lalu mengeksekusi blok kode yang cocok dan melewati blok yang lain.
Aturan Dasar If dan Else #
Statement if menerima satu ekspresi bertipe bool di dalam tanda kurung. Bila ekspresi bernilai true, compiler mengeksekusi blok yang mengikuti if; bila false, eksekusi berpindah ke else if berikutnya atau ke else sebagai jalur akhir. Rantai if–else if–else dievaluasi dari atas ke bawah, dan hanya cabang pertama yang bernilai true yang dijalankan.
int nilaiUjian = 82;
if (nilaiUjian >= 80)
{
Console.WriteLine("Predikat A");
}
else if (nilaiUjian >= 70)
{
Console.WriteLine("Predikat B");
}
else
{
Console.WriteLine("Predikat C");
}Output yang Dihasilkan:
Predikat AMari kita telaah baris demi baris:
- Baris 1 (
int nilaiUjian = 82;): Program mendeklarasikan variabelnilaiUjianbertipeintsebagai data yang akan diuji. - Baris 3 (
if (nilaiUjian >= 80)): Compiler mengevaluasi ekspresinilaiUjian >= 80. Karena82 >= 80bernilaitrue, blok setelahnya dieksekusi. - Baris 5 (
Console.WriteLine("Predikat A");): Statement ini dijalankan karena kondisi pertama terpenuhi. - Baris 6–11: Karena cabang
ifsudah terpilih, compiler melewati seluruh cabangelse ifdanelse; tidak ada satu statement pun di dalamnya yang berjalan.
Alur Eksekusi Rantai If #
Diagram berikut memperlihatkan jalur yang dilalui compiler saat memeriksa rantai kondisi. Setiap titik keputusan hanya punya dua hasil, true atau false, dan eksekusi tidak pernah menjalankan lebih dari satu blok.
Sebagai teks pendukung diagram: compiler menelusuri kondisi satu per satu dari atas ke bawah. Pemeriksaan berhenti pada cabang pertama yang bernilai true, sedangkan blok else menampung seluruh sisa kasus tanpa kondisi tambahan.
If Tanpa Else #
Tidak semua keputusan membutuhkan jalur alternatif. Statement if boleh berdiri sendiri: blok di dalamnya hanya dijalankan bila kondisi terpenuhi, dan program langsung melanjutkan statement berikutnya bila kondisi tidak terpenuhi.
int totalBelanja = 120000;
if (totalBelanja >= 100000)
{
Console.WriteLine("Anda mendapat voucher diskon 10%");
}
Console.WriteLine("Terima kasih telah berbelanja");Output yang Dihasilkan:
Anda mendapat voucher diskon 10%
Terima kasih telah berbelanjaKondisi totalBelanja >= 100000 bernilai true karena 120000 melewati ambang batas, sehingga kedua baris output muncul. Bila nilai totalBelanja diubah menjadi 50000, baris voucher tidak tercetak dan program hanya menampilkan ucapan terima kasih.