for
Basic for loop
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i); // 0, 1, 2, 3, 4
}
Reverse iteration
for (int i = 4; i >= 0; i--)
{
Console.WriteLine(i); // 4, 3, 2, 1, 0
}
Step increment
for (int i = 0; i < 10; i += 2)
{
Console.WriteLine(i); // 0, 2, 4, 6, 8
}
foreach
Iterate array
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
Console.WriteLine(num);
}
Iterate List
List<string> names = new List<string> { "Alice", "Bob" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Iterate Dictionary
Dictionary<string, int> dict = new Dictionary<string, int>
{
{ "one", 1 },
{ "two", 2 }
};
foreach (KeyValuePair<string, int> kvp in dict)
{
Console.WriteLine($"{kvp.Key}: {kvp.Value}");
}
while / do-while
while - 先判斷再執行
int i = 0;
while (i < 5)
{
Console.WriteLine(i); // 0, 1, 2, 3, 4
i++;
}
do-while - 先執行再判斷,至少執行一次
int j = 0;
do
{
Console.WriteLine(j); // 0, 1, 2, 3, 4
j++;
} while (j < 5);
break / continue
break - 跳出迴圈
for (int i = 0; i < 10; i++)
{
if (i == 5) break;
Console.WriteLine(i); // 0, 1, 2, 3, 4
}
continue - 跳過本次,繼續下一次
for (int i = 0; i < 5; i++)
{
if (i == 2) continue;
Console.WriteLine(i); // 0, 1, 3, 4
}
Recursive
Factorial 階乘遞迴: 一般遞迴,堆疊累積
int Factorial(int n)
{
if (n <= 1) return 1;
return n * Factorial(n - 1);
}
// Factorial(5) = 5 * 4 * 3 * 2 * 1 = 120
Fibonacci 斐波那契數列遞迴: 值等於前兩項相加
int Fibonacci(int n)
{
if (n <= 1) return n;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
// Fibonacci(6) = 8 (0, 1, 1, 2, 3, 5, 8)
FactorialTail 尾遞迴: 累加器攜帶中間結果,不累積堆疊
int FactorialTail(int n, int acc = 1)
{
if (n <= 1) return acc;
return FactorialTail(n - 1, n * acc);
}