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

        一、foreach

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

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

foreach(类型 标识符 in 集合)
{
    代码;
}
foreach(数据类型 迭代变量 in  数组或者集合名)
{
   使用迭代变量 
}

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

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

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

        注意点:

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

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

        二、案例(1)

using System;

namespace _20220831_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int x = 0, y = 0;
            char[] ch1 = new char[] { '0', '1', '2', '3' };
            foreach(char a in ch1)
            {
                if (a == '0')
                    x++;
                else
                    y++;
            }
            Console.WriteLine(ch1);
            Console.WriteLine("0的个数为:{0}\n1的个数为:{1}", x, y);
        }
    }
}

        三、案例(2)

using System;

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

        四、案例(3)

using System;

namespace _20220901_1
{
    class Program
    {
        static void Main(string[] args)
        {
            double[] points = { 88, 77, 75, 35, 95.5 };
            double sum = 0;
            double avg = 0;
            foreach (double point in points)
            {
                sum = sum + point;
            }
            avg = sum / points.Length;
            Console.WriteLine("总成绩为:" + sum);
            Console.WriteLine("平均成绩为:" + avg);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_45336030/article/details/126633798