C# 中的控制流语句用于根据条件或循环执行代码块。它们是程序逻辑的核心部分。
if
、else if
、else
int score = 85;
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
switch
语句Console.Write("请输入星期几(1-7):");
int day = int.Parse(Console.ReadLine());
switch (day)
{
case 1:
Console.WriteLine("星期一");
break;
case 2:
Console.WriteLine("星期二");
break;
case 3:
case 4:
Console.WriteLine("工作日");
break;
case 5:
Console.WriteLine("星期五");
break;
case 6:
case 7:
Console.WriteLine("周末");
break;
default:
Console.WriteLine("输入错误");
break;
}
when
条件匹配(C# 7+)object value = 100;
switch (value)
{
case int i when i > 0:
Console.WriteLine("正整数");
break;
case int i when i < 0:
Console.WriteLine("负整数");
break;
default:
Console.WriteLine("其他类型或零");
break;
}
enum Color
{
Red,
Green,
Blue
}
Color selected = Color.Green;
switch (selected)
{
case Color.Red:
Console.WriteLine("红色");
break;
case Color.Green:
Console.WriteLine("绿色");
break;
default:
Console.WriteLine("未知颜色");
break;
}
switch
表达式(C# 8+)string result = selected switch
{
Color.Red => "红色",
Color.Green => "绿色",
_ => "未知颜色"
};
Console.WriteLine(result);
while
和 do...while
while
简单循环int count = 1;
while (count <= 5)
{
Console.WriteLine($"计数:{count}");
count++;
}
do...while
至少执行一次int num;
do
{
Console.Write("请输入一个数字(输入0退出):");
num = int.Parse(Console.ReadLine());
} while (num != 0);
for
循环for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
for
遍历数组int[] numbers = { 10, 20, 30, 40 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine($"索引 {i} 的值为:{numbers[i]}");
}
for
循环(打印乘法表)for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write($"{j}*{i}={i * j}\t");
}
Console.WriteLine();
}
foreach
遍历集合string[] names = { "Alice", "Bob", "Charlie" };
foreach (string name in names)
{
Console.WriteLine(name);
}
continue
跳过当前迭代for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
continue;
Console.WriteLine(i); // 只输出奇数
}
控制流结构 | 是否支持条件判断 | 是否支持多分支 | 是否可重复执行 |
---|---|---|---|
if / else |
✅ | ✅ | ❌ |
switch |
✅ | ✅ | ❌ |
while |
✅ | ❌ | ✅ |
do...while |
✅ | ❌ | ✅ |
for |
✅ | ❌ | ✅ |
foreach |
✅ | ❌ | ✅ |
using System;
class Program
{
enum WeekDay
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
static void Main()
{
Console.WriteLine("=== C# 控制流综合练习 ===\n");
// if / else if / else
int score = 78;
if (score >= 90) Console.WriteLine("优秀");
else if (score >= 60) Console.WriteLine("及格");
else Console.WriteLine("不及格");
// switch
WeekDay today = WeekDay.Monday;
string dayName = today switch
{
WeekDay.Saturday or WeekDay.Sunday => "周末",
_ => "工作日"
};
Console.WriteLine($"今天是:{dayName}");
// while
int count = 1;
while (count <= 5)
{
Console.WriteLine($"计数:{count}");
count++;
}
// do while
int num;
do
{
Console.Write("请输入一个数字(输入0退出):");
num = int.Parse(Console.ReadLine());
} while (num != 0);
// for 循环数组
int[] nums = { 10, 20, 30 };
for (int i = 0; i < nums.Length; i++)
{
Console.WriteLine($"索引 {i} 的值为:{nums[i]}");
}
// foreach
string[] names = { "Tom", "Jerry" };
foreach (string name in names)
{
Console.WriteLine(name);
}
// continue
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0) continue;
Console.WriteLine(i);
}
Console.WriteLine("\n按任意键退出...");
Console.ReadKey();
}
}
=== C# 控制流综合练习 ===
及格
今天是:工作日
计数:1
计数:2
...
请输入一个数字(输入0退出):5
请输入一个数字(输入0退出):0
索引 0 的值为:10
索引 1 的值为:20
索引 2 的值为:30
Tom
Jerry
1
3
5
7
9
按任意键退出...