C# menyediakan konstruksi kontrol aliran standar — kondisional (if, ), loop (, , ), lan branching (, , ) — plus peningkatan modern kaya switch expressions lan pattern matching sing nggawe kode luwih 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",
};
Switch expression sing modern iku ringkas (ngasilake nilai, ora ana break), lan ndhukung powerful pattern matching (cocog karo tipe, kondisi, lan liyane) — perbaikan besar banget luwih saka switch tradisional sing berbelit-belit.
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 (iterasi sembarang IEnumerable) minangka loop idiomatik kanggo koleksi.
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
Kontrol aliran iku mekanisme dasaripun kanggo ngekspresi logika ing saben program, supaya ngerti konstruksi C# iku pengetahuan fundamental saben dinten.
Sedáng perkoro dasar iku standar, perbaikan modern C# patut diweruhi lan digunakake: switch expression (C# 8+) iku perbaikan signifikan luwih saka switch tradisional — ringkas, ngasilake nilai, ora ana fall-through bugs (ora ana break sing dilalekno), lan ndhukung pattern matching (cocog lawan tipe, kondisi, nilai, lan struktur), sing nggawe logika kondisional kompleks luwih resik ketimbang rantai if-else sing anested.
Operator null-coalescing (??, ??=) nyediyakake null handling sing resik, lan foreach minangka cara idiomatik kanggo iterasi koleksi.
Ngerti konstruksi kasebut lan luwih seneng anggo bentuk modern lan ekspresif (switch expressions karo pattern matching luwih saka switch statements verbose, null-coalescing kanggo defaults) minangka pengetahuan saben dinten kanggo nulis C# sing resik lan idiomatik.
Switch expression lan pattern matching khususé minangka pencerminan evolusi C# modern nuju kode sing luwih functional lan ringkas, sing nggawe kasebut penting kanggo dimangerteni dadi nulis kode sing luwih apik lan kanggo maca C# codebases saiki sing nggunakake fitur kasebut kanthi ekstensif.