c#迭代结构

   所有的编程语言多提供了重复代码块直到终止条件的方式。不过过去用过什么方法,C#迭代语句都不会让你感到陌生。C#提供了四种迭代结构:

  1. for循环
  2. foreach/in循环
  3. while循环
  4. do/while循环

下面让我们探讨一下每一个循环结构。

  • for循环

如果需要迭代一段代码规定次数,for语句会提供很大的灵活性。从本质上来说,我们可以指定一段代码重复的次数和终止条件。下面给大家一个例子:

        //基本循环

        static void forLoopExample()

        {

            //注意!“i”只在for循环里可见

            for(int i = 0;i <4; i++)

            {

                Console.WriteLine("Number is:{0}", i);

            }

}

  • foreach循环

C#foreach关键字允许遍历某种容器中的所选项,无需测试数组的上限。不过与for循环不同,foreach循环只会以线性(n+1)的方式遍历容器。

然而,当你只需逐项遍历某个集合时,foreach循环是最佳选择。下面是两个使用foreach的示例,一个遍历字符串数组,另一个遍历整数数组。注意:in关键字前面的数据类型代表容器中的数据类型:

//使用foreach迭代数组项

       static void Fodgfkgds()

        {

            string[] carTypes = { "Ford", "Howo", "Joge", "Home" };

            foreach (string a in carTypes)

                Console.WriteLine(a);

            int[] myInts = { 10, 20, 30, 40 };

            foreach (int i in myInts)

                Console.WriteLine(i);

        }

In关键字后面的项目可以是简单数组,更确切的说是任何实现IEnumerable接口的类。.Net基础类库配备了大量包含普通抽象数据类型(ADT)实现的集合。

  在foreach结构中也可以使用隐式类型。因为我们不知道subset变量具体的基础数据类型,可以使用隐式类型迭代结构集:

static void Dsreew(){

            int[] numbers = { 10,20,30,40,1,2,3,4 };

//LINQ查询

var subset = from I in numbers where i < 10 select i;

                Console.Write (Valus in subset:);

            foreach (var i in subset)

{

                 Console.Write ({0}i);

}   

    }

  • while和do/while循环结构

当希望执行一段语句直到满足某个终止条件时,while循环结构很有用。在while循环的作用域内,我们要确保终止事件会产生,否则就会产生无限循环。在如下代码中In while loop消息会不断输出,直到用户在命令提示符中输入yes才结束循环。

  static void rfrfekdjfoe()

        {

            string userIsDone = "";

            //对字符串的小写副本进行测试

            while (userIsDone.ToLower()!= "yes")

            {

                Console.WriteLine("In while loop");

                Console.WriteLine("Ate you done?[yes] [no]");

                userIsDone = Console.ReadLine();

            }

   }

和while循环密切相关的是do/while语句。和简单的while循环相似,当我们需要进行一些次数不定的动作时,可以使用do/while。区别是do/while循环肯定会执行至少一次对应的代码块。相比之下,如果以开始终止条件就是false,很可能while循环就不会执行。

static void sdtfhfjhredif()

        {

            string userfdg = "";

            do

            {

                Console.WriteLine("Helloween");

                Console.WriteLine("dfgrerre? [yes] [no]:");

                userfdg = Console.ReadLine();

            } while (userfdg.ToLower() != "yes");

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值