C# 循环与条件语句详解

C# Switch 语句

使用 switch 语句选择要执行的多个代码块中的一个。

示例:

csharp 复制代码
switch(expression) 
{
  case x:
    // 代码块
    break;
  case y:
    // 代码块
    break;
  default:
    // 代码块
    break;
}

它的工作方式如下:

  1. 评估 switch 表达式一次
  2. 将表达式的值与每个 case 的值进行比较
  3. 如果有匹配,执行关联的代码块

以下示例使用星期几的数字来计算星期几的名称:

示例

csharp 复制代码
int day = 4;
switch (day) 
{
  case 1:
    Console.WriteLine("星期一");
    break;
  case 2:
    Console.WriteLine("星期二");
    break;
  case 3:
    Console.WriteLine("星期三");
    break;
  case 4:
    Console.WriteLine("星期四");
    break;
  case 5:
    Console.WriteLine("星期五");
    break;
  case 6:
    Console.WriteLine("星期六");
    break;
  case 7:
    Console.WriteLine("星期日");
    break;
}
// 输出 "星期四"(第 4 天)

break 关键字

当 C# 遇到 break 关键字时,它会跳出 switch 块。

这将停止执行更多 switch 块内部的代码和 case 测试。

当找到匹配并完成任务时,是时候休息一下了。不需要进行更多测试。

break 可以节省大量执行时间,因为它"忽略"了 switch 块中其余代码的执行。

default 关键字

default 关键字是可选的,如果没有 case 匹配,则指定一些代码运行:

示例

csharp 复制代码
int day = 4;
switch (day) 
{
  case 6:
    Console.WriteLine("今天是星期六。");
    break;
  case 7:
    Console.WriteLine("今天是星期日。");
    break;
  default:
    Console.WriteLine("期待周末。");
    break;
}
// 输出 "期待周末。"

C# While Loop

循环

循环可以执行一段代码,只要满足指定的条件。

循环很方便,因为它们节省时间、减少错误,并使代码更易读。

C# While 循环

while 循环会在指定条件为 True 的情况下循环执行一段代码块:

示例:

csharp 复制代码
while (condition) 
{
  // 要执行的代码块
}

在下面的示例中,只要变量(i)小于 5,循环中的代码将一遍又一遍地运行:

示例

csharp 复制代码
int i = 0;
while (i < 5) 
{
  Console.WriteLine(i);
  i++;
}

注意:不要忘记增加条件中使用的变量,否则循环永远不会结束!

Do/While 循环

do/while 循环是 while 循环的变体。这个循环会在检查条件是否为真之前执行一次代码块,然后只要条件为真就重复循环。

语法

csharp 复制代码
do 
{
  // 要执行的代码块
}
while (condition);

下面的示例使用了 do/while 循环。即使条件为 false,循环也会至少执行一次,因为在测试条件之前执行代码块:

示例

csharp 复制代码
int i = 0;
do 
{
  Console.WriteLine(i);
  i++;
}
while (i < 5);

不要忘记增加条件中使用的变量,否则循环永远不会结束!

C# For Loop

C# For 循环

当你确切地知道要循环执行一段代码多少次时,使用 for 循环而不是 while 循环:

示例:

csharp 复制代码
for (statement 1; statement 2; statement 3) 
{
  // 要执行的代码块
}

Statement 1 在执行代码块之前执行(一次)。

Statement 2 定义执行代码块的条件。

Statement 3 在执行代码块后执行(每次)。

下面的示例将打印出数字 04

示例

csharp 复制代码
for (int i = 0; i < 5; i++) 
{
  Console.WriteLine(i);
}

示例说明

  • Statement 1 在循环开始之前设置一个变量(int i = 0)。
  • Statement 2 定义循环运行的条件(i 必须小于 5)。如果条件为 true,循环将重新开始;如果条件为 false,循环将结束。
  • Statement 3 在循环中的代码块执行后增加一个值(i++)。

另一个示例

这个示例将只打印出在 010 之间的偶数值:

示例

csharp 复制代码
for (int i = 0; i <= 10; i = i + 2) 
{
  Console.WriteLine(i);
}

嵌套循环

也可以将一个循环放在另一个循环内部。这被称为嵌套循环。

"内部循环" 将在 "外部循环" 的每次迭代中执行一次:

示例

csharp 复制代码
// 外部循环
for (int i = 1; i <= 2; ++i) 
{
  Console.WriteLine("外部: " + i);  // 执行 2 次

  // 内部循环
  for (int j = 1; j <= 3; j++) 
  {
    Console.WriteLine(" 内部: " + j); // 执行 6 次(2 * 3)
  }
}

C# For each 循环

还有一个专门用于遍历数组元素的 foreach 循环:

示例:

csharp 复制代码
foreach (type variableName in arrayName) 
{
  // 要执行的代码块
}

以下示例使用 foreach 循环输出 cars 数组中的所有元素:

示例

csharp 复制代码
string[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
foreach (string i in cars) 
{
  Console.WriteLine(i);
}

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关推荐
IT爱学堂13 分钟前
Go开发疑难杂症终结者通关指南
后端
大勇前进23 分钟前
从10分钟到10秒:一个真实慢查询的SQL Server优化全记录
后端
站大爷IP24 分钟前
被Python异步坑了三年,才搞懂await和create_task的区别
后端
大白8025 分钟前
你的数据库密码还在用明文?SQL Server 凭据管理的 3 种现代方案
后端
凤山老林25 分钟前
Spring Boot 集成 ShardingSphere-Encrypt 实现字段级实时脱敏
java·spring boot·后端·数据脱敏
vipxieliang25 分钟前
ValidX v1.2.0 更新日志
java·后端
Zane199433 分钟前
只改一个方向的引用,循环引用就能立刻被回收?一文讲透 weakref 弱引用
后端·python
长大198833 分钟前
窗口函数用不好反而更慢?SQL Server中OVER子句的4个性能陷阱
后端
大黄评测33 分钟前
MERGE语句有Bug?SQL Server官方不推荐的背后真相与替代方案
后端
长大198835 分钟前
TempDB 爆满导致系统卡死?SQL Server TempDB 瓶颈诊断与根治方案
后端