C#上位机--循环语句

序言

在 C# 编程中,循环语句是非常重要的控制结构,它允许我们重复执行一段代码,直到满足特定的条件。通过使用循环,我们可以高效地处理大量数据,简化代码逻辑。本文将详细介绍 C# 中四种常见的循环语句:ForWhileDo...While 和 Foreach,并通过丰富的示例代码来展示它们的使用方法和应用场景。

1. For 循环

1.1 基本概念

For 循环是一种常用的计数循环,它适用于已知循环次数的情况。For 循环的结构清晰,包含初始化、条件判断和迭代三个部分,通过这三个部分的协同工作,控制循环的执行次数。

1.2 语法

for (初始化表达式; 条件表达式; 迭代表达式)
{
    // 循环体代码
}
  • 初始化表达式:在循环开始前执行,通常用于初始化循环控制变量。
  • 条件表达式:在每次循环迭代前进行判断,如果条件为 true,则执行循环体;如果条件为 false,则退出循环。
  • 迭代表达式:在每次循环体执行完毕后执行,通常用于更新循环控制变量的值。

1.3 示例代码

using System;

class Program
{
    static void Main()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("当前数字是: " + i);
        }
    }
}

1.4 代码解释

在上述代码中,for 循环的初始化表达式 int i = 0 定义并初始化了一个整数变量 i 为 0。条件表达式 i < 5 表示只要 i 小于 5,循环就会继续执行。迭代表达式 i++ 在每次循环体执行完毕后将 i 的值加 1。因此,循环体中的 Console.WriteLine 语句会执行 5 次,依次输出 0 到 4 的数字。

1.5 使用场景

  • 当需要执行固定次数的循环时,例如遍历数组、列表等集合中的元素。
  • 进行数学计算,如求和、求积等。

2. While 循环

2.1 基本概念

While 循环是一种先判断条件再执行循环体的循环结构。只要条件表达式的值为 true,循环体就会一直执行;当条件表达式的值为 false 时,循环终止。

2.2 语法

while (条件表达式)
{
    // 循环体代码
}

2.3 示例代码

using System;

class Program
{
    static void Main()
    {
        int num = 0;
        while (num < 5)
        {
            Console.WriteLine("当前数字是: " + num);
            num++;
        }
    }
}

2.4 代码解释

在上述代码中,首先定义并初始化了一个整数变量 num 为 0。while 循环的条件表达式 num < 5 会在每次循环开始前进行判断。只要 num 小于 5,循环体中的 Console.WriteLine 语句就会执行,并且 num 的值会加 1。当 num 等于 5 时,条件表达式的值为 false,循环终止。

2.5 使用场景

  • 当循环次数不确定,需要根据某个条件来决定是否继续循环时,例如从用户输入中读取数据,直到用户输入特定的值为止。
  • 实现一些需要动态控制循环次数的算法。

3. Do...While 循环

3.1 基本概念

Do...While 循环是一种先执行循环体,再判断条件的循环结构。无论条件表达式的值如何,循环体至少会执行一次。只有在执行完循环体后,才会对条件表达式进行判断,如果条件为 true,则继续执行循环体;如果条件为 false,则退出循环。

3.2 语法

do
{
    // 循环体代码
} while (条件表达式);

3.3 示例代码

using System;

class Program
{
    static void Main()
    {
        int num = 0;
        do
        {
            Console.WriteLine("当前数字是: " + num);
            num++;
        } while (num < 5);
    }
}

3.4 代码解释

在上述代码中,首先定义并初始化了一个整数变量 num 为 0。do 块中的循环体代码会先执行一次,输出当前 num 的值,并将 num 的值加 1。然后,对 while 后面的条件表达式 num < 5 进行判断,如果条件为 true,则继续执行循环体;如果条件为 false,则退出循环。

3.5 使用场景

  • 当需要确保循环体至少执行一次时,例如在用户输入验证的场景中,先让用户输入一次数据,然后根据输入的内容进行验证,如果不符合要求,则继续让用户输入。

4. Foreach 循环

4.1 基本概念

Foreach 循环是一种专门用于遍历集合(如数组、列表、字典等)中每个元素的循环结构。它会自动处理集合的迭代,无需手动管理索引,使代码更加简洁易读。

4.2 语法

foreach (数据类型 变量名 in 集合)
{
    // 循环体代码
}
  • 数据类型:集合中元素的类型。
  • 变量名:用于表示当前迭代到的集合元素的变量。
  • 集合:要遍历的集合对象。

4.3 示例代码

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> fruits = new List<string> { "苹果", "香蕉", "橙子" };
        foreach (string fruit in fruits)
        {
            Console.WriteLine("当前水果是: " + fruit);
        }
    }
}

4.4 代码解释

在上述代码中,首先创建了一个 List<string> 类型的集合 fruits,并添加了三个水果名称。foreach 循环会依次遍历集合中的每个元素,将当前元素赋值给变量 fruit,然后执行循环体中的 Console.WriteLine 语句,输出当前水果的名称。

4.5 使用场景

  • 当需要遍历集合中的每个元素,而不需要关心元素的索引时,使用 foreach 循环可以使代码更加简洁。
  • 遍历只读集合或无法通过索引访问的集合。

总结

本文详细介绍了 C# 中四种常见的循环语句:ForWhileDo...While 和 Foreach。每种循环语句都有其特定的用途和适用场景,在实际编程中,我们应该根据具体的需求选择合适的循环语句,以确保代码的效率和可读性。For 循环适用于已知循环次数的情况;While 循环适用于根据条件动态控制循环次数的情况;Do...While 循环适用于需要确保循环体至少执行一次的情况;Foreach 循环适用于遍历集合中的每个元素。通过合理运用这些循环语句,我们可以编写出更加高效、简洁的 C# 程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分析与算法设计-作业2-拉普拉斯算子空间滤波和增强

作业2 题目 对Flower.dat图像&#xff08;10241024&#xff0c;np.uint8&#xff09;用如下拉普拉斯算子进行空间滤波和增强&#xff1a;np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]])&#xff0c;图像边缘采用复制填充方式&#xff0c;不使用其他第三方库&#xff0c;使…

SpringBoot+Vue+微信小程序的猫咖小程序平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在当下这个高速发展的时代&#xff0c;网络科技正以令人惊叹的速度不断迭代更新。从 5G …

基于SpringBoot的二手交易系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今社会&#xff0c;随着电子商务的蓬勃发展和人们消费观念的转变&#xff0c;二手物品交易逐渐成为了一种新的生活方式。人们越来越倾向于将不再需要的物品进行二次交易&#xff0c;以实现资源的有效利用和环保理念的实践。…

vscode无法预览Markdown在线图片链接

问题&#xff1a;在VSCode中&#xff0c;打开MarkDown文件&#xff0c;存在在线图片链接&#xff0c; 但是在预览时却无法显示。 原因&#xff1a;因为Visual Studio Code中的MarkDown默认配置中只允许载入安全内容 解决方法&#xff1a; 1、输入快捷键 Ctrl Shift P 打开…

Power Query M函数

文章目录 三、PQ高阶技能&#xff1a;M函数3.1 M函数基本概念3.1.1 表达式和值3.1.2 计算3.1.3 运算符3.1.4 函数3.1.5 元数据3.1.6 Let 表达式3.1.6 If 表达式3.1.7 Error 3.2 自定义M函数3.2.1 语法3.2.2 调用定义好的自定义函数3.2.3 直接调用自定义函数3.2.4 自定义函数&am…

election靶机渗透测试

发现靶机ip地址 使用nmap进行扫描端口发现详细信息nmap -T4 -sV -sC -p- 192.168.52.142 用dirsearch扫一下网站的目录 看到一个phpinfo 一个phpmyadmin的登录页面 robots.txt文件 看一下这个election目录下并没有发现什么 继续进行目录扫描&#xff0c;这时候看到一个admin的l…

为AI聊天工具添加一个知识系统 之119 详细设计之60 圣灵三角形和Checker 之2

本文要点 要点回顾 我们回顾一下本题目的讨论内容。 我的想法是&#xff0c; 将Substance 作为 面向服务的架构的起点并基于差异来自下而上地分类 实体--目的是实体职责单一化&#xff0c;将Object作为面向对象的语义差异的系统原点 并沿着差异继承的路径来至上而下地划分对…

安全生产月安全知识竞赛主持稿串词

女:尊敬的各位领导、各位来宾 男:各位参赛选手、观众朋友们 合:大家好&#xff5e; 女:安全是天&#xff0c;有了这一份天&#xff0c;我们的员工就会多一份幸福&#xff0c; 我们的企业就会多一丝光彩。 男:安全是地&#xff0c;有了这一片地&#xff0c;我们的员工就多了一…

五、Three.js顶点UV坐标、纹理贴图

一部分来自1. 创建纹理贴图 | Three.js中文网 &#xff0c;一部分是自己的总结。 一、创建纹理贴图 注意&#xff1a;把一张图片贴在模型上就是纹理贴图 1、纹理加载器TextureLoader 注意&#xff1a;将图片加载到加载器中 通过纹理贴图加载器TextureLoader的load()方法加…

Deepin(Linux)安装MySQL指南

1.下载 地址&#xff1a;https://downloads.mysql.com/archives/community/ 2.将文件解压到 /usr/local 目录下 先cd到安装文件所在目录再解压&#xff0c;本机是cd /home/lu01/Downloads sudo tar -xvJf mysql-9.2.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local3.创建软链…

[MDM 2024]Spatial-Temporal Large Language Model for Traffic Prediction

论文网址&#xff1a;[2401.10134] Spatial-Temporal Large Language Model for Traffic Prediction 论文代码&#xff1a;GitHub - ChenxiLiu-HNU/ST-LLM: Official implementation of the paper "Spatial-Temporal Large Language Model for Traffic Prediction" …

Aseprite绘画流程案例(1)——画相机图标

原图&#xff1a; 步骤一&#xff1a;打开需要参照的图标 步骤二&#xff1a;将参照的图片拖放到右边&#xff0c;作为参考 步骤三&#xff1a;新建24x24的画布&#xff0c;背景为白色的画布 步骤四&#xff1a;点击菜单栏——视图——显示——像素网格&#xff08;如果画布已经…

计算机毕业设计SpringBoot+Vue.js母婴商城(源码+LW文档+PPT+讲解+开题报告)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例

1. 版本说明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本&#xff1a; 2. springboot项目搭建 可以集成在自己的项目里&#xff0c;也可以到 spring.io 生成一个项目 生成的话&#xff0c;如下…

Android输入事件传递流程系统源码级解析

1. 硬件层到Linux内核 设备节点&#xff1a;触摸事件由内核驱动捕获&#xff0c;写入/dev/input/eventX。关键结构体&#xff1a;input_event&#xff08;包含时间戳、类型、代码、值&#xff09;。 2. Native层处理&#xff08;system_server进程&#xff09; 2.1 EventHub …

贪心算法

int a[1000], b5, c8; swap(b, c); // 交换操作 memset(a, 0, sizeof(a)); // 初始化为0或-1 引导问题 为一个小老鼠准备了M磅的猫粮&#xff0c;准备去和看守仓库的猫做交易&#xff0c;因为仓库里有小老鼠喜欢吃的五香豆&#xff0c;第i个房间有J[i] 磅的五香豆&#xf…

HDFS Java 客户端 API

一、基本调用 Configuration 配置对象类&#xff0c;用于加载或设置参数属性 FileSystem 文件系统对象基类。针对不同文件系统有不同具体实现。该类封装了文件系统的相关操作方法。 1. maven依赖pom.xml文件 <dependency><groupId>org.apache.hadoop</groupId&g…

Scrum方法论指导下的Deepseek R1医疗AI部署开发

一、引言 1.1 研究背景与意义 在当今数智化时代&#xff0c;软件开发方法论对于项目的成功实施起着举足轻重的作用。Scrum 作为一种广泛应用的敏捷开发方法论&#xff0c;以其迭代式开发、快速反馈和高效协作的特点&#xff0c;在软件开发领域占据了重要地位。自 20 世纪 90 …

网络工程知识笔记

1. 什么是网络&#xff1f; 网络是由多个节点&#xff08;如计算机、打印机、路由器等&#xff09;通过物理或逻辑连接组成的系统&#xff0c;用于数据的传输和共享。这些节点可以通过有线&#xff08;如以太网&#xff09;或无线&#xff08;如 Wi-Fi&#xff09;方式进行连接…

qt项目配置部署

Test项目: 子项目testFileHelper 1.新建一个test项目的子项目:取名testFileHelper 2.编写测试用例 3.pro文件中引入qosbrowser 4.引入测试对象的cpp和头文件 2.在项目中引入资源文件testfile.txt,在其中输入abc 实现thrid目录复用 移动thrid 将thrild目录统一放在章…