C#学习笔记第四章流程控制.docx_第1页
C#学习笔记第四章流程控制.docx_第2页
C#学习笔记第四章流程控制.docx_第3页
C#学习笔记第四章流程控制.docx_第4页
C#学习笔记第四章流程控制.docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章内容:l 布尔逻辑的含义及其用法l 如何控制代码的分支l 如何编写循环代码4.1 布尔逻辑 4.1.1 布尔比较运算符 布尔类型可以有两个值:true或false。常常用于存储比较的结果运算符类别示例表达式结果=二元var1 = var2 = var3;如果var2等于var3,var1的值就是true,否则为false!=二元var1 = var2 != var3;如果var2不等于var3,var1的值就是true,否则为false二元var1 = var2 二元var1 = var2 var3;如果var2大于var3,var1的值就是true,否则为false=二元var1 = var2 =二元var1 = var2 = var3;如果var2大于等于var3,var1的值就是true,否则为false在处理布尔值时,还有其他一些布尔运算符运算符类别示例表达式结果!一元var1 = ! var2;如果var2是false,var1的值就是true,否则为false(逻辑非)&二元var1 = var2 & var3;如果var2和var3都是true,var1的值就是true,否则为false(逻辑与)I二元var1 = var2 I var3;如果var2或var3是true(或两者都是),var1的值就是true,否则为false(逻辑或)二元var1 = var2 var3;如果var2或var3中有且仅有一个是true,var1的值就是true,否则为false(逻辑异或)&和I运算符也有两个类似的运算符,称为条件布尔运算符运算符类别示例表达式结果&二元var1 = var2 & var3;如果var2和var3都是true,var1的值就是true,否则为false(逻辑与)II二元var1 = var2 II var3;如果var2或var3是true(或两者都是),var1的值就是true,否则为false(逻辑或)&和II运算符的结果与&和I完全相同,但得到结果的方式有一个重要区别:其性能比较好。& 和II都是先检查第一个操作数的值,再根据该操作数的值进行操作,可能根本就不处理第二个操作数。如果&运算符的第一个操作数是false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,其结果都是false。同样,如果第一个操作数是true,II运算符就返回true,无需考虑第二个操作数的值。但&和I运算符却不是这样,它们总是要计算两个操作数。一般来说应该尽可能使用&和II运算符,而&和I运算符一般用来对数值执行按位运算。/*由于逻辑或的符号不好打,所以我把这里的“I”,“II”和”I=”中的I换成了大写的字母I*/4.1.2 布尔赋值运算符使用布尔赋值运算符可以把布尔比较和赋值组合起来运算符类别示例表达式结果&=二元var1 &= var2;var1的值是var1 & var2的结果I=二元var1 I= var2;var1的值是var1 I var2的结果=二元var1 = var2;var1的值是var1 var2的结果4.1.3 按位运算付按位运算付通常有三种:按位与&,按位或I和按位取反运算符类别示例表达式结果&二元var1 = var2 & var3;var1的值是var2和var3按位与的结果I二元var1 = var2 & var3;var1的值是var2和var3按位或的结果一元var1 = var2;var1的值是var2按位取反的结果位移运算符:相左位移运算符类别示例表达式结果二元var1 = var2 二元var1 = var2 var3;把var2的二进制值向右移动var3位,就得到var1的值位移运算符也有赋值运算符运算符类别示例表达式结果=一元var1 =一元var1 = var2;把var1的二进制值向右移动var2位,就得到var1的值4.2 goto语句goto语句的主要优点:这是控制什么时候执行哪些代码的一种简单方式。主要缺点:过多使用将使代码晦涩难懂。尽量少用一些比较好_goto语句的用法如下:goto ;标签用下述方式定义::例如下面的代码:int myInteger = 5;goto myLabel;myInteger += 10;myLabel:Console.WriteLine(“myInteger = 0”, myInteger); 4.3 分支C#的3种分支:l 三元运算符l if语句l switch语句4.3.1 三元运算符 例如使用三元运算符可以测试int变量myInteger的值: string resultString = (myInteger 10) ? “Less than 10” : “Greater than or equal to 10”; 这个运算符比较适合用于这样的简单赋值语句,但不适用于根据比较结果执行大量代码的情形。此时应使用if语句 4.3.2 if语句 if语句的功能比较多,是有效的决策方式。使用该语句是为了有条件的执行其他语句。 if语句的语法有: if ()code executed if is true; 或者 if ()code executed if is true; elsecode executed if is false; 使用if语句判断更多的条件(if语句可以嵌套): if (var1 = 1) / Do something. else if (var1 = 2) / Do something else; else if (var1 = 3 II var1 = 4) / Do something else; else / Do something else; 这些else if语句实际上是两个独立语句,他们的功能与上述代码相同。但更便于阅读。像这样进行多个比较的操作,应考虑使用switch语句。4.3.3 switch语句 switch语句非常类似于if语句,但是switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件,但这种测试仅限于离散的值。switch语句的基本结构如下:switch()case :code to execute if = ;break;case :code to execute if = ;break;.case :code to execute if = ;break;default:code to execute if = ;break;执行完每个部分中的代码后,还需有另一个语句break。在执行玩一个case快后,再执行第二个case语句是非法的。这里的break语句将中断switch语句的执行,而执行该结构后面的语句。再C#代码中也可以使用goto语句,因为case语句实际上是在C#中定义的标签,例如switch()case :code to execute if = ;goto case ;case :code to execute if = ;break;. 也可以把多个case语句放在一起(堆叠它们),例如:switch()case :case :code to execute if = or = ;break;. switch结构中每个都必须是一个常数值。一种方法是提供字面值,另一种方式是使用常量。4.4 循环4.4.1 do循环do循环以下述方式执行:执行标记为循环的代码,然后进行一个布尔测试,如果测试的结果为true,就再次执行这段代码。当测试结果为false时,就退出循环。其特点是无论条件如何,代码总是会被执行一次。do循环的结构如下:do; while ();比如说我们要输出从0到10:int i = 0;doConsole.WriteLine(“0”, i+);while(i = 10);那么加入我们想要先检查条件,然后在确定要不要执行代码呢,这个时候就应该使用while循环。4.4.2 while循环while循环非常类似与do循环,但是有一个明显的区别:while循环实在开始时执行条件判断,而不是在最后执行。while循环结构如下:while();还是用输出0到10为例;int i = 0;while(i = 10)Console.WriteLine(“0”. i+);它的使用方式与do循环几乎完全相同。4.4.3 for循环for循环可以执行指定的次数,并维护它自己的计数器。要定义for循环,需要下列信息:l 初始化计数器变量的一个起始值l 继续循环的条件,它应涉及到计数器变量l 在每次循环的最后,对计数器变量执行一个操作其结构如下:for(; ; );它的工作方式与以下while循环完全相同:;while();但for循环的格式使代码更易于阅读,因为其语法实在一个地方包括循环的全部规则,而不是把几个语句放在代码的不同地方。那么从0到10输出的for循环就是:for(int i = 0; i = 10; +i)Console.WriteLine(“0”, i);最后要注意的是,可以把计数器声明为for语句的一部分,但如果这么做,就不能在循环外部使用变量i4.4.4 循

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论