C# Switch 语句

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

示例:

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

它的工作方式如下:

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

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

示例

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 匹配,则指定一些代码运行:

示例

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 的情况下循环执行一段代码块:

示例:

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

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

示例

int i = 0;
while (i < 5)
{
Console.WriteLine(i);
i++;
}

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

Do/While 循环

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

语法

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

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

示例

int i = 0;
do
{
Console.WriteLine(i);
i++;
}
while (i < 5);

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

C# For Loop

C# For 循环

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

示例:

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

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

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

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

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

示例

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 之间的偶数值:

示例

for (int i = 0; i <= 10; i = i + 2)
{
Console.WriteLine(i);
}

嵌套循环

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

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

示例

// 外部循环
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 循环:

示例:

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

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

示例

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

最后

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

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

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

C# 循环与条件语句详解的更多相关文章

  1. JScript中的条件注释详解(转载自网络)

    JScript中的条件注释详解-转载 这篇文章主要介绍了JScript中的条件注释详解,本文讲解了@cc_on.@if.@set.@_win32.@_win16.@_mac等条件注释语句及可用于条件编 ...

  2. mysql基础篇 - SELECT 语句详解

    基础篇 - SELECT 语句详解         SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...

  3. T-SQL_select语句详解

    select语句执行的过程: 先看查询内容 ==>where条件 ==>[分组条件] ==>[分组搜索条件] ==>内容输出 ==>[是否排序] SQL中SELECT语句 ...

  4. 【转】MySQL用户管理及SQL语句详解

    [转]MySQL用户管理及SQL语句详解 1.1 MySQL用户管理 1.1.1 用户的定义 用户名+主机域 mysql> select user,host,password from mysq ...

  5. MySQL之SELECT 语句详解

    本文参考实验楼的SELECT 语句详解结合自己操作部分而写成. 注意:大多数系统中,SQL语句都是不区分大小写的,但是出于严谨和便于区分保留字和变量名,在书写的时,保留字应大写,而变量名应小写.所谓的 ...

  6. SQL DELETE 语句详解

    SQL DELETE 语句详解   DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName Fir ...

  7. SQL Update 语句详解

    SQL Update 语句详解   Update 语句 Update 语句用于修改表中的数据. 语法: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 Person: L ...

  8. “全栈2019”Java异常第二十二章:try-with-resources语句详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  9. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  10. C#基础表达式语句详解(上)

    本节内容: 1.表达式的定义: 2.各类表达式概览: 3.语句的定义: 4.语句详解: 1.表达式的定义: 1.1什么是表达式: (定义见下图)各类编程语言对表达式的实现不尽相同,但大体上都符合这个定 ...

随机推荐

  1. 【系统选型】OA需求分析,OA系统选型及各供应商对比。

    去年公司内部做OA信息化升级,需要更新换代一下OA系统,当时OA选型整理下来的资料分享一下. 需求调研整理后如下: 一共四个模块需要更新&升级 :  OA模块(包括行政) + 合同模块 + 费 ...

  2. 【LeetCode贪心#03】最大子序和

    最大子序和 力扣题目链接 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 子数组 是数组中的一个连续部分. 示例 1: 输入:nums = ...

  3. 【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题

    问题描述 Java Function在Azure上遇见中文显示乱码问题?如何解决呢? 问题解答 中文字符显示为乱码,这个情况就是服务实例上设置的编码格式不是统一的UTF-8所导致的. 在查看Azure ...

  4. gitlab推送代码触发jenkins构建

    预期:推送devloop或者master分支的代码, 自动执行jenkins 发布测试环境 首先,jenkins中需要安装如下插件 打开一个任务配置,构建触发器中勾选"Build when ...

  5. 玩转SpringBoot:SpringBoot的几种定时任务实现方式

    引言 在现代软件开发中,定时任务是一种常见的需求,用于执行周期性的任务或在特定的时间点执行任务.这些任务可能涉及数据同步.数据备份.报表生成.缓存刷新等方面,对系统的稳定性和可靠性有着重要的影响.Sp ...

  6. vxe table columns 要用data里的值,用computed的值会导致排序部分不好用。

    vxe table columns 要用data里的值,用computed的值会导致排序部分不好用.

  7. nginx proxy_set_header详解

    proxy_set_header 是 Nginx 配置中的一个重要指令,特别是在使用 Nginx 作为反向代理时.该指令允许你修改由 Nginx 传递给代理后端的请求头.这对于确保后端应用程序能够接收 ...

  8. Some characters cannot be mapped using 'ISO-8859-1'解决方案

    问题: MyEclipse中:Some characters cannot be mapped using 'ISO-8859-1' character encoding   分析:由于默认的字符是I ...

  9. 【2311. 小于等于 K 的最长二进制子序列】贪心

    class Solution { public static void main(String[] args) { Solution solution = new Solution(); System ...

  10. Spring Boot学习日记17

    尝试整合JDBC spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/mybati ...