• .NET基础——循环、枚举


    1. 循环结构

      3种循环语句:while、do-while、for

       面对循环我们应当注意:

        1. 循环在做什么?(重复做的事情——也就是循环体的内容)

        2. 循环的终止条件是什么?(循环条件)

      3种循环的特点:

        while循环的特点:先判断,在执行

        do-while循环的特点:先执行,后判断。循环体至少会被执行一次。

        for循环的特点:用于已知循环次数的循环。  语法: for(表达式1;表达式2;表达式3){循环体}

          表达式1: 用于定义循环变量和为循环变量赋初值。(如,int i = 0;)

          表达式2: 循环条件(如,i < 10;)

          表达式3: 改变循环变量的值(如,i++;)

          执行过程: (1)计算表达式1,转向(2)

                (2)计算表达式2,如果表达式2的值为true,转向(3);如果表达式2的值为false,转向(5)

                (3)执行循环体,转向(4)

                  (4)执行表达式3,转向(2)

                (5)循环结束

          for循环的三个表达式都可以省略,如果表达式2被省略的话,就会变成死循环。  for(;;){}

      在做项目的时候,我们要因地制宜地使用这3种循环结构。

    2.  break 和 continue

      break的作用:

        1. 可以用于switch-case判断中,用于跳出switch

          2. 用在循环中,可以立即跳出(终止)循环。注意:跳出的是break所在的循环。

       continue的作用:

           1. 用在循环中,可以立即结束本次循环,不再执行后面的循环体语句,直接进入下一次循环。

          2. 对于 do-while和white 直接进行下一次循环条件的判断,如果条件成立,则再次进入循环。

          3. 对于for循环,先执行表达式3,再判断循环条件是否成功。

    3.  跳出双重循环的方法

      (1)设置一个标志 flag

       (2)跳出内循环,flag = true

       (3)在外循环,判断:flag为true时,跳出外循环。

    4.  枚举

        1. 枚举也是一种类型,它的本质是值类型。

         枚举的作用:为了固定一个变量的“范围”,也方便程序员的使用;限制用户不能随意赋值,只能赋在定义枚举时列举的值中选择。 

     [public] enum 枚举名

    {

          成员1,成员2, … , 成员n

     } 

    2. 注意

       (1)C#中枚举项都是常量,在定义枚举的时候,需要指定枚举的所有值

     (2)不能定义方法/属性/事件,定义枚举时,值不能是int类型

     (3)枚举的值在定义时是有一个默认编号的,编号从0开始

     (4)多个枚举项有相同数值时,数值强转时,会返回第一相等的枚举项

     (5)枚举类型的变量可以直接输出,都可以被强制转换成一个int类型

     (6)把一个字符串转换成枚举类型:(枚举名)(Enum.Parse(typeof(枚举名),"待转换的字符串");

            这里的函数 typeof() 的作用是获取 参数的数据类型,因为枚举类型是我们自定义的类型,所以在转换的时候,需要明确告诉编译器,目标类型是何种枚举类型。

        枚举类型转换成字符串: 枚举变量名.ToString(); 

            除了枚举,其他类型也可以调用ToString() 转换成string类型。

          (7)将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。

      3. 代码

          在编程时为枚举变量赋值, 我们写到“ Status s =”的时候,可以按下空格键或者ctrl+J,就会出现提示。

     1     public enum Status
     2     {
     3         Open = 1,
     4         Continue2 = 2,
     5         Continue = 2,
     6         Close = 2,
     7     }
     8 
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //枚举值和int的相互转换
    14             Status sta = Status.Close;
    15             //多个枚举项有相同数值时,数值强转时,会返回第一相等的枚举项
    16             Console.WriteLine(Status.Close.ToString()); // 输出:Continue2,不是Close 
    17             Console.WriteLine((int)sta);  // 输出:2
    18 
    19             int staInt = 2;
    20             //根据数值转枚举值时,会取到第一个 相同数值的枚举值
    21             Console.WriteLine((Status)staInt);// 输出:Continue2
    22 
    23             long l = 10;
    24             TestEnum(l);// 输出:10
    25 
    26             //字符串转枚举值
    27             string strE = "Continue";
    28             Status sta2 = (Status)Enum.Parse(typeof(Status), strE);
    29             Console.WriteLine(sta2);// 输出:Continue2
    30             Console.ReadLine();
    31         }
    32 
    33         static void TestEnum(long s)
    34         {
    35             //int转为枚举,如果int的值超出了枚举的范围,则保持原来的值不变,还是int
    36             Console.WriteLine((Status)s);
    37         }
    38     }

        

      

  • 相关阅读:
    执行truncate引发ORA-02266的问题分析
    一文搞懂MySQL-8.0 redo优化
    写给迷茫中的大一大二的学弟学妹,学渣逆袭中的个人经历与心得
    99+好友共同关注,公众号推荐
    Cesium
    Cesium
    Cesium
    Cesium
    虚拟化学习笔记-KVM虚拟化跨机迁移原理
    虚拟化学习笔记-KVM虚拟化跨机迁移原理
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4505587.html
Copyright © 2020-2023  润新知