当前位置: 首页 > news >正文

C# 探险之旅:第十一节 - 循环(foreach):一场“遍历”奇幻岛的大冒险!

嘿,勇敢的探险家们!欢迎来到C#奇幻岛的第十一站——“遍历”奇幻岛!今天,我们要乘坐一艘叫做foreach的魔法船,去遍历(也就是一个一个看过来)岛上那些神秘的宝藏箱!准备好了吗?让我们扬帆起航!

1. foreach是什么?它是怎么来的?

想象一下,你站在一堆五彩斑斓的宝藏箱前,每个箱子里都有不同的宝贝。你想看看每个箱子里到底有啥,但又不想一个个手动打开(那太累了!)。这时,foreach这位魔法船长就出现了,它说:“嘿,交给我,我能带你快速浏览每一个箱子!”

foreach是C#里的一种循环语句,专门用来遍历集合中的每一个元素,比如数组、列表或者其他集合类型。它不需要你记住当前是第几个箱子,也不需要你手动跳到下一个箱子,一切都自动进行,是不是很神奇?

2. foreach的使用秘籍

要使用foreach,你需要遵循三个简单的步骤:

  1. 指定要遍历的集合:告诉foreach你想要遍历哪个宝藏堆。
  2. 定义一个变量来存放当前元素:这个变量就像是你从箱子里拿出来的宝贝,每次循环都会更新。
  3. 在循环体内操作这个变量:看看这个宝贝,摸摸那个宝贝,或者做点其他什么。

看,语法就像这样简单:

foreach (var item in collection)
{// 在这里处理每个item
}
  • collection是你的宝藏堆,可以是数组、列表等。
  • item是你每次从箱子里拿出来的宝贝。
  • 大括号{}里是你对每个宝贝要做的操作。
3. 实战演练:遍历一个数组

假设我们有一个存放宝藏的数组treasures,里面都是字符串类型的宝藏名称。我们来用foreach遍历它:

string[] treasures = { "金币", "银币", "宝石", "古老地图" };foreach (var treasure in treasures)
{Console.WriteLine("我找到了:" + treasure);
}

这段代码就像是说:“对于treasures数组里的每一个treasure,我都要在控制台上大喊一声‘我找到了:’加上这个宝藏的名字!”运行后,你会看到控制台上一行行显示出每个宝藏的名字。

 

 前面,我们学过了 if 语句,这里我们还可以在foreach循环中加入判断呢,我们来看一下修改后的代码:

string[] treasures = { "金币", "银币", "宝石", "古老地图" };foreach (var treasure in treasures)
{if (treasure== "宝石") continue;if (treasure == "古老地图") break;Console.WriteLine("我找到了:" + treasure);
}

运行结果:

 这段程序说明:

  • string[] treasures = { "金币", "银币", "宝石", "古老地图" };

    • 定义并初始化一个名为treasures的字符串数组,包含四个元素:"金币", "银币", "宝石", 和 "古老地图"
  • foreach (var treasure in treasures)

    • 开始一个foreach循环,它会遍历treasures数组中的每一个元素。在每次迭代中,当前元素会被赋值给变量treasure
  • if (treasure == "宝石") continue;

    • 检查当前的treasure是否等于"宝石"。如果是,则执行continue语句,这会导致循环立即跳过当前迭代的剩余部分,继续下一次迭代。因此,如果treasure"宝石",那么下面的代码将不会被执行,程序将继续检查下一个元素。
  • if (treasure == "古老地图") break;

    • 检查当前的treasure是否等于"古老地图"。如果是,则执行break语句,这会导致整个foreach循环立即终止,即使还有未遍历的元素。因此,一旦遇到"古老地图",循环就会结束,不再处理之后的任何元素(如果有的话)。
  • Console.WriteLine("我找到了:" + treasure);

    • 如果上述两个条件都不满足,即treasure既不是"宝石"也不是"古老地图",则会执行这条语句,输出一条信息到控制台,说明找到了哪个宝藏。
  • 在第一次迭代中,treasure"金币",所以它会打印出"我找到了:金币"
  • 在第二次迭代中,treasure"银币",所以它会打印出"我找到了:银币"
  • 在第三次迭代中,treasure"宝石",此时会触发continue语句,导致这次迭代提前结束,直接进入下一次迭代,因此"宝石"不会被打印。
  • 在第四次迭代中,treasure"古老地图",此时会触发break语句,导致循环提前结束,因此"古老地图"也不会被打印。

综上所述,这段代码只会输出找到"金币""银币"的信息,而"宝石""古老地图"都不会被输出。小伙伴们,你们懂了吗?

4. 注意事项:别掉进陷阱里!
  • 只读访问foreach循环中的变量(比如上面的treasure)是只读的,你不能在循环里修改它的值。想要修改?那得用其他循环语句,比如for循环。
  • 类型安全:虽然可以用var关键字让编译器自动推断类型,但明确知道集合里元素的类型是个好习惯,这样可以避免一些类型转换的错误。
结语

好了,勇敢的探险家们,今天的“遍历”奇幻岛之旅就到这里啦!你学会了如何使用foreach这位魔法船长,快速浏览集合中的每一个元素。接下来,还有更多C#奇幻岛的秘密等着你去发现。记得带上你的勇气和智慧,我们下一站再见!

http://www.lryc.cn/news/502088.html

相关文章:

  • Ubuntu24.04配置STMTrack
  • 【Java学习笔记】Map接口和常用方法
  • uniapp支持App横竖屏开发总结
  • 【工作笔记】Lombok版本变化导致的反序列化异常
  • 多模态大语言模型 MLLM 部署微调实践
  • LNMP和Discuz论坛
  • Cadence学习笔记 2 PCB封装绘制
  • 网络安全——防火墙
  • 【CSS in Depth 2 精译_074】第 12 章 CSS 排版与间距概述 + 12.1 间距设置(下):行内元素的间距设置
  • 短视频矩阵抖音SEO源码OEM独立部署
  • 使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
  • 在ensp中ACL路由控制实验
  • μC/OS-Ⅱ源码学习(3)---事件模型
  • Jmeter进阶篇(30)深入探索 JMeter 监听器
  • 虚幻引擎的工程目录结构
  • 深度学习中的yield
  • 数据库数据恢复—ORACLE常见故障有哪些?如何恢复数据?
  • 使用JavaScrip和HTML搭建一个简单的博客网站系统
  • 算法-字符串-76.最小覆盖子串
  • Python爬虫之Selenium的应用
  • 粉丝生产力与开源 AI 智能名片 2+1 链动模式商城小程序的融合创新与价值拓展
  • 红黑树(Red-Black Tree)
  • Cocos 资源加载(以Json为例)
  • 解决 IntelliJ IDEA 启动错误:插件冲突处理
  • SQL——DQL分组聚合
  • Ripro V5日主题 v8.3 开心授权版 wordpress主题虚拟资源下载站首选主题模板
  • 分布式搜索引擎之elasticsearch基本使用2
  • java学习-第十五章-IO流(java.io包中)
  • 企业如何实现数据从源端到消费端的全链路加工逻辑可视化?
  • Toxicity of the Commons: Curating Open-Source Pre-Training Data