欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > C# 探险之旅:第十一节 - 循环(foreach):一场“遍历”奇幻岛的大冒险!

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

2024/12/31 1:59:49 来源:https://blog.csdn.net/caifox/article/details/144409702  浏览:    关键词: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#奇幻岛的秘密等着你去发现。记得带上你的勇气和智慧,我们下一站再见!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com