C# menyediakan konstruksi aliran kontrol standar — bersyarat (if, ), loop (, , ), dan cabang (, , ) — ditambah peningkatan modern seperti ekspresi switch dan pencocokan pola yang membuat kode lebih ringkas.
switchforforeachwhilebreakcontinuereturnif (score >= 90)
grade = "A";
else if (score >= 80)
grade = "B";
else
grade = "F";
// ternary and null-coalescing
string status = age >= 18 ? "adult" : "minor";
string name = input ?? "default"; // ?? — use default if input is null
name ??= "fallback"; // ??= assign if null
// traditional switch
switch (day)
{
case "Sat":
case "Sun":
type = "weekend";
break; // break required (no fall-through)
default:
type = "weekday";
break;
}
// switch EXPRESSION (C# 8) — concise, returns a value, with pattern matching
string type = day switch
{
"Sat" or "Sun" => "weekend",
_ => "weekday", // _ = default
};
// pattern matching in switch
string describe = obj switch
{
int n when n > 0 => "positive int",
string s => $"string of length {s.Length}",
null => "null",
_ => "other",
};
Ekspresi switch modern ringkas (mengembalikan nilai, tanpa break), dan mendukung pencocokan pola yang kuat (mencocokkan tipe, kondisi, dan banyak lagi) — peningkatan besar dibandingkan dengan switch tradisional yang bertele-tele.
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
foreach (mengulangi IEnumerable apa pun) adalah loop idiomatic untuk koleksi.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Aliran kontrol adalah mekanisme dasar untuk mengekspresikan logika dalam setiap program, sehingga memahami konstruksi C# adalah pengetahuan dasar sehari-hari.
Meskipun dasar-dasarnya standar, peningkatan C# modern patut diketahui dan digunakan: ekspresi switch (C# 8+) adalah peningkatan signifikan dibandingkan dengan switch tradisional — ringkas, mengembalikan nilai, tanpa bug fall-through (tidak ada break yang terlupakan), dan mendukung pencocokan pola yang kuat (mencocokkan tipe, kondisi, nilai, dan struktur), yang membuat logika kondisional kompleks jauh lebih bersih daripada rantai if-else yang bersarang.
Operator null-coalescing (??, ??=) menyediakan penanganan null yang bersih, dan foreach adalah cara idiomatic untuk mengulangi koleksi.
Memahami konstruksi ini dan memilih bentuk modern dan lebih ekspresif (ekspresi switch dengan pencocokan pola daripada pernyataan switch yang bertele-tele, null-coalescing untuk default) adalah pengetahuan sehari-hari untuk menulis C# yang bersih dan idiomatic.
Ekspresi switch dan pencocokan pola khususnya mencerminkan evolusi C# modern menuju kode yang lebih fungsional dan ringkas, menjadikannya penting untuk dipahami baik untuk menulis kode yang lebih baik maupun untuk membaca basis kode C# saat ini yang menggunakan fitur ini secara luas.