• C# 第二章『基础语法』◆第4节:foreach循环语句


            一、foreach

            foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成,in右边的项是集合名,in左边的项是变量名,又来存放该集合中的每个元素。

            foreach循环语句的语法格式如下:

    1. foreach(类型 标识符 in 集合)
    2. {
    3. 代码;
    4. }
    5. foreach(数据类型 迭代变量 in 数组或者集合名)
    6. {
    7. 使用迭代变量
    8. }

            foreach语句括号中的类型和标识符用来声明该语句的循环变量,标识符即循环变量的名称。循环变量相当于一个只读的局部变量。

            在每一个循环时,都会从集合中取出一个新的元素值,放到只读变量中去,如果括号中的整个表达式返回值为true,foreach块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为false,控制流程就转入到foreach块后面继续执行后面的语句。

            foreach语句经常与数组一起使用。数组的属性:Array.Length数组的容量,利用这个属性,我们可以取得数组对象允许存储的容量值,也就是数组的长度、元素个数。当数组的维数、容量较多时,C#提供了foreach语句,专门用来读取集合/数组中的所有元素,我们把这种功能叫做遍历。

            注意点:

    1. 数据类型必须是和数组类型或者集合里面的元素类型相同。
    2. 变量名也必须符合命名规则。
    3. 最重要的一点就是,迭代变量是只能读取数组或者集合里面的值的,但是不能用于给数组或者集合里面的元素赋值,如果给迭代变量赋值,就会出现报错的情况。

            备注:循环变量的类型必须与集合的类型相同。集合内元素的个数决定循环内程序段重复执行的次数。

            二、案例(1)

    1. using System;
    2. namespace _20220831_2
    3. {
    4. class Program
    5. {
    6. static void Main(string[] args)
    7. {
    8. int x = 0, y = 0;
    9. char[] ch1 = new char[] { '0', '1', '2', '3' };
    10. foreach(char a in ch1)
    11. {
    12. if (a == '0')
    13. x++;
    14. else
    15. y++;
    16. }
    17. Console.WriteLine(ch1);
    18. Console.WriteLine("0的个数为:{0}\n1的个数为:{1}", x, y);
    19. }
    20. }
    21. }

            三、案例(2)

    1. using System;
    2. namespace _20220901_1
    3. {
    4. class Program
    5. {
    6. static void Main(string[] args)
    7. {
    8. int[, ,] a = new int[2, 2, 2] { { { 1, 2 }, { 3, 4 } }, { { 5, 6 }, { 7, 8 } } };//定义一个2行2列2纵深的3维数组a
    9. foreach (int i in a)
    10. {
    11. Console.WriteLine(i);
    12. }
    13. }
    14. }
    15. }

            四、案例(3)

    1. using System;
    2. namespace _20220901_1
    3. {
    4. class Program
    5. {
    6. static void Main(string[] args)
    7. {
    8. double[] points = { 88, 77, 75, 35, 95.5 };
    9. double sum = 0;
    10. double avg = 0;
    11. foreach (double point in points)
    12. {
    13. sum = sum + point;
    14. }
    15. avg = sum / points.Length;
    16. Console.WriteLine("总成绩为:" + sum);
    17. Console.WriteLine("平均成绩为:" + avg);
    18. }
    19. }
    20. }
  • 相关阅读:
    【NodeJs-5天学习】第一天篇① —— 第一次认识NodeJs
    CSS学习————文本属性(2)
    论文题目:深度学习在自然语言处理中的应用研究
    学习笔记二十:Pod生命周期-启动钩子、停止钩子
    实现mnist手写数字识别
    功能安全学习(一):E-GAS 功能安全架构设计的记录(概念及举例)
    679 - Dropping Balls (UVA)
    105道Java面试题
    2022年京东新百货七夕礼遇季活动有什么亮点?
    【uniapp】跨域代理及一些常见问题:
  • 原文地址:https://blog.csdn.net/qq_45336030/article/details/126633798