首页 > 代码库 > 2016-12-30 c#读书笔记(3)

2016-12-30 c#读书笔记(3)

1、条件语句
    根据条件是否满足或根据表达式的值控制代码的执行分支
 
    if(condition) {
        statement;
    } else {
        satement
    }
 
    如果只有一条语句可以省略{},但建议放上
    可以只有一个if而没有else
    可以有多个else if,实现多条分支:
        if(condition) {
            ...
        }else if(condition) {
            ...
        }else if(condition) {
            ...
        }else {
            ...
        }
    else if语句的个数不受限制
    if子句中的表达式必须是布尔值
    
2、switch语句
    switch(表达式) {
        case 常量1: ... break;
        case 常量2: ... break;
        case 常量3: ... break;
        default: .. break;
    }
 
    case后面必须跟常量表达式,不能是变量。
 
    case子句必须有break(和c/java不同)
        有一种情况例外,多个case为空:
         case "a":
         case "b":
         case "c": break;
 
    case子句可以通过goto跳到另一个case,如:
        case "a":
            goto case "b";
        case "b":  break;
        case "c":  break;
 
    case 子句的顺序无所谓
    case 后面的常量值不能重复。
 
    switch中测试表达式的值可以是整数,字符串,枚举,布尔,字符
 
3、for循环
    for(初始化;循环条件;迭代) {
        ...
    }
    初始化在第一次循环前执行,只执行一次
    循环条件:每次进入循环时都执行,用于判断是否进行循环。
    迭代:一般用作计数器
 
    一般可预测循环次数的用for循环
    for循环可以嵌套,外层为外循环,内层为内循环。
 
4、while循环
    while(循环条件) {
        ...
    }
 
5、do ... while循环
    do {
        ...
    }while(循环条件);
 
    与while相比,do..while至少执行一次循环。
 
6、foreach循环
    可以迭代集合中的每一项
    for( 变量 in 集合) {
        ...
    }
 
    foreach循环每次迭代一个元素。
    foreach循环是只读的,您不能改变集合各项的值。如:
        int[] arr = {1,2,3,4,5};
        foreach(int i in arr) {
            i++; //出错
        }
 
7、跳转语句
 
    goto语句可以跳到程序中用标签指定的那一行,如:
        goto POSITION;
            ...
        POSITION:  //定义标签:标识符后面加上冒号
            ...
 
    goto不能从外跳到for循环中。
    goto不能跳出类的范围
    goto不能跳出try .. catch后面的finally块。
 
    break语句可以用在switch中,循环中,用于退出switch或循环。
 
    continue语句只能用于循环,他退出当前循环进行一下次迭代。
 
    return语句用于退出方法,把控制权交给调用者。
 
8、枚举
    枚举是用户定义的整数类型
    声明时要指定枚举的实例可以包含的枚举值
    枚举继承于System.Enum类
 
    优势:
        枚举可以使代码易于维护
        枚举用名称表示整数值,代码清晰
 
    定义:
        public enum 枚举类型名 {
            值1 = 0,
            值2 = 1, 值3 =2
        }
    
    使用:
        枚举.值;
        枚举 变量 = 枚举.值;
 
    枚举值转换为字符串:
        枚举.值.ToString();
        枚举变量.ToString();
 
    字符串转换为枚举值:
       枚举变量 =  (枚举类型)Enum.Parse(typeof(枚举类型),"字符串",true)
         第三个参数是:是否忽略大小写
 
    例:
 
namespace game
{
    public enum GameStatus
    {
        START,PLAYING,GAME_OVER
    }

    class Program
    {
        static void Main(string[] args)
        {
            GameStatus status = GameStatus.PLAYING;
            checkStatus(status);
        }

        static void checkStatus(GameStatus status)
        {
            string value = http://www.mamicode.com/null;
            switch (status)
            {
                case GameStatus.START: value = http://www.mamicode.com/"游戏开始"; break;
                case GameStatus.PLAYING: value = http://www.mamicode.com/"游戏运行中"; break;
                case GameStatus.GAME_OVER: value = http://www.mamicode.com/"游戏结束"; break;
            }
            Console.WriteLine(value);
        }
    }
}
    

 

2016-12-30 c#读书笔记(3)