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 = null;
            switch (status)
            {
                case GameStatus.START: value = "游戏开始"; break;
                case GameStatus.PLAYING: value = "游戏运行中"; break;
                case GameStatus.GAME_OVER: value = "游戏结束"; break;
            }
            Console.WriteLine(value);
        }
    }
}
    
时间: 2025-01-09 07:14:00

2016-12-30 c#读书笔记(3)的相关文章

2016/12/8前端学习笔记CSS开始。

1 无序列表 ul>li:ul里只能有li,并且li里面可放元素却很多.li是容器级标签,什么都能放. 有序列表 ul>ol:一般不用 一般都是用ul>li 2 定义列表 dl:表示定义列表 dt定义标题 dd定义表述词儿(真实案例)京东下面购物指南.用什么标签不是根据样式决定 是根据语义 3 div容器级 span文本级(只能放文字图片表单元素) 4 表单:用于收集用户信息,用户填写的. 4.1 文本框:<input type="text" value=&qu

2016/12/10前端学习笔记CSS结束+JS开始。

18 浏览器兼容问题:IE6不支持小于12px的盒子,兼容方式: height:4px; _font-size:1px; IE6不支持overflow:hidden的方法清除浮动,所以,需要 用 : overflow: hidden; 与_zoom:1;两条代码做兼容处理 css属性之前加上下划线是IE6的专有属性 例如:_background-color:red; 19 margin的塌陷:在标准文档流中竖直方向的margin会有已较大margin 为准的塌陷现象.但是浮动后没有塌陷. 20

【2016.12.05】JavaScript笔记02

2016/12/11前端学习笔记JS结束Jquery开始。

35 offsetWidth 于offsetHeight都是指盒子的实际大小,不包含margin 包含 width/height+padding+border. offsetTop与offsetLeft是表示的相对于最近的父级元素的位置.若都没有 以body为准.上述四个返回的都是数值 36 offsetParent(返回带有定位的父级若没有返回body) 注意与parentNode区分. 37 box.style.left与box.offsetLeft的区别. 1 offsetLeft可返回未

《CLR.via.C#第三版》第二部分第12章节 泛型 读书笔记(六)

终于讲到泛型了.当初看到这个书名,最想看的就是作者对泛型,委托,反射这些概念的理解.很多人对泛型的理解停留在泛型集合上,刚开始我也是,随着项目越做越多,对待泛型的认识也越来越深刻. 泛型的概念:泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行. 泛型的优势:源代码保护.类型安全.更加清晰的代码.更佳的性能. 原理:(关键字:开放类型,封闭类型)所有带泛型参数的类型都是一个开放式类型,它不能被实例化(类似接口),在具体使用时生成封闭类型(实际数据类型). 泛型

12.26~12.30工作日志

2016.12.26/27 1.writing-mode: vertical-rl;在电脑显示有效果,在手机端无效 解决办法:改为 -webkit-writing-mode: vertical-rl; 2.div设置inline-block之后,如果没有设置固定宽高,div内的内容将正常显示,div缩为一个点????????? 3.设置float的元素最好设置好宽度,便于控制 4.document.getElementsByClassName(classname)获取的是数组数组!!!!就算获取

【读书笔记】2016.12.10 《构建高性能Web站点》

本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 1.1 等待的真相 1.2 瓶颈在哪里 1.3 增加带宽 1.4 减少网页中的HTTP请求 1.5 加快服务器脚本计算速度 1.6 使用动态内容缓存 1.7 使用数据缓存 1.8 将动态内容静态化 1.9 更换Web服务器软件 1.10 页面组件分离 1.11 合理部署服务器 1.12 使用负载均衡 1.1

《30天自制操作系统》读书笔记(2)hello, world

让系统跑起来 要写一个操作系统,我们首先要有一个储存系统的介质,原版书似乎是06年出版的,可惜那时候没有电脑,没想到作者用的还是软盘,现在的电脑谁有软驱?不得已我使用一张128M的SD卡来代替,而事实上你用的是U盘还是软盘对我们的操作系统没有影响,缺点是你的U盘刷入系统后容量只能是1440 MB,即当年流行的3.5英寸软盘的大小,当然不用担心,再格式化一次(用DiskGeniu),就可以恢复. 我做事情的话,总是怕自己的努力的结果白费了,害怕辛辛苦苦看完这本书但是发现做出来的东西现在根本没法用,

《30天自制操作系统》读书笔记(4) 绘图

暑假果然是滋生懒散的温床. (╯‵□′)╯︵┻━┻ 好久不动都忘记之前做到哪里了, 上次好像做到了C语言的引入, 这一节所做的东西都相当轻松, 将会绘制出操作系统的基本界面. 绘图的原理 按照书中所说, 将值写入到显存中就能在屏幕上显示相应的像素, 在asmhead.nas 中有这一段: 1 CYLS EQU 0x0ff0 ; 设定启动区 2 LEDS EQU 0x0ff1 3 VMODE EQU 0x0ff2 ; 关于颜色数目的信息,颜色的位数 4 SCRNX EQU 0x0ff4 ; 分辨率

《30天自制操作系统》读书笔记(3) 引入C语言

这一次的学习相当曲折, 主要是因为粗心, Makefile里面的错误导致了文件生成出现各种奇奇怪怪的问题, 弄得心力交瘁, 因此制作过程还是尽量按着作者的路子来吧. 作者提供的源码的注释在中文系统下是乱码, 而且代码的分隔用了两个Tab, 在这里要处理一下: :%s/;.*//g 删除所有的注释; :%s/\t\t/\t 把两个Tab替换为一个Tab; 要让作者的nas文件和asm文件拥有相同的语法规则, 在_vimrc文件的最后一行添加 au BufNewFile,BufRead *.nas