首页 > 编程语言 >C# 循环与条件语句详解

C# 循环与条件语句详解

时间:2024-01-22 20:45:24浏览次数:35  
标签:语句 case Console 示例 C# break 详解 WriteLine 循环

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,关注后即可获取最新文章推送

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

标签:语句,case,Console,示例,C#,break,详解,WriteLine,循环
From: https://www.cnblogs.com/xiaowange/p/17981024

相关文章

  • 快手长短期序列建模论文CLSR
    背景用户是否点击一个物品可能受长期兴趣和短期行为的影响,用户的长期兴趣一般比较稳定,短期兴趣会不断变化。现有的工作中对长期兴趣和短期兴趣的建模师混合在一起的,这片论文提出了一种对长期兴趣和短期兴趣分开建模的方法。 方法用户兴趣建模U:用户属性,包含了用户ID和行为序......
  • 无涯教程-CodeIgniter - 性能压测
    如果要测量执行一组行或内存使用所花费的时间,则可以使用CodeIgniter中的基准测试点进行计算。为此,在CodeIgniter中有一个单独的"Benchmarking"类。此类会自动加载;它可以在控制器,视图和模型类中的任何位置使用。您所需要做的就是标签一个起点和终点,然后在这两个标签的点之间执行......
  • KY85 二叉树C++
    递归判断当前节点和n的关系就好了。如果小于等于n那就是存在。#include<iostream>usingnamespacestd;intcount(inti,intn){if(i>n)return0;returncount(2*i,n)+count(2*i+1,n)+1;}intmain(){intn,m;while(cin>>m>>n){if(n==0)......
  • STL-stack和queue堆栈和队列
    STL-stack和queue堆栈和队列目录STL-stack和queue堆栈和队列堆栈和队列特性堆栈主要操作构造函数主要操作栈顶插入和删除大小相关简单案例队列的主要操作构造函数大小相关索引访问入队/出队优先队列priority_queue初始化构造小顶堆自定义结构体排序参考资料堆栈和队列特性stack......
  • AT_arc170_d Triangle Card Game
    当Alice先出了一张牌\(A\),Bob又出了一张\(B\),分类讨论一下。当\(B\leqA\),如果Alice不再出一张\((A-B,A+B)\)中的牌Bob就赢了,所以这种情况Bob会出最小的牌。当\(B>A\),如果Alice不再出一张\((B-A,B+A)\)中的牌Bob就赢了,这时无法贪心,对每个\(B_i\)考虑,找到......
  • STL-vector向量
    STL-vector向量目录STL-vector向量1.头文件2.构造函数3.索引存取元素4.遍历元素4.capacity相关5.插入元素6.删除元素7.排序和翻转8.底层原理9.特殊记忆函数总结参考资料vector数组是一个能存放任意数据类型(类,结构,普通变量类型等)的动态数组,在数据结构中就相当于顺序储存的线性......
  • Spring Cloud 系列:Seata 中TCC模式具体实现
    概述https://seata.io/zh-cn/docs/dev/mode/tcc-modehttps://seata.io/zh-cn/docs/user/mode/tccTCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。需要实现三个方法:Try:资源的检测和预留;Confirm:完成资源操作业务;要求Try成功Confirm一......
  • char
    字符串是否相等(大小写敏感)两种方法:strcmp比较、转string再比较#include<string.h>//forCstrcmp#include<stdio.h>//forCprintf#include<string>//forC++stringintmain(){char*cA="HelloWorld";charcB[]="HelloWorl......
  • centos 查看 PCIE 接口 PCI-E Linux下查看PCIe版本及速率
    centos查看PCIE接口lspci|grep-ipcie#lspci|grep-ipcie01:00.0Ethernetcontroller:BroadcomInc.andsubsidiariesNetXtremeBCM57202-portGigabitEthernetPCIe01:00.1Ethernetcontroller:BroadcomInc.andsubsidiariesNetXtremeBCM57202-portGig......
  • Go在Gin中解决CORS中间件没生效的问题
    起因最近在写前后端分离项目,然后在前端访问后端提供的接口时,会出现CORS问题。查找资料发现,Gin官方是有提供中间件的https://github.com/gin-contrib/cors先在terminal输入gogetgithub.com/gin-contrib/cors然后就按照官方的使用例子就行:packagemainimport("time"......