首页 > 代码库 > C#入门经典札记_Ch04流程控制

C#入门经典札记_Ch04流程控制

Chapter 04 流程控制

4.1 布尔逻辑

1.var1=var2^var3 ; ^异或运算符)

2.&与 &&||的区别:

结果都是一样的,但是&&||性能更好,尽可能的使用&&||

4.1.1 位运算符

1.处理的是存储在变量中的一系列位,而不是变量的值。

、 、 ~

<<   // var1=var2<<var3 表示var2的二进制值向左移动var3位,后面补0

>>   // var1=var2<<var3 表示var2的二进制值向右移动var3

把数值每向左移动一位,该数都要乘以2;每向右移动一位,该数都要除以2,并丢弃余数。

 

Notice

在大多数代码中,都不使用这些运算符。他们主要高度优化的代码,在这些代码中不能使用其他数学操作。因此他们通常用于设备驱动或系统代码。

4.1.2 布尔赋值运算符

&= 、 |= 、 ^=

<<= 、 >>=

 

4.2 goto语句

1.C#允许给代码加上标签,这样就可以使用goto语句直接跳转到这些代码行上。该语句有其优缺点。主要的优点是:这是控制什么时候执行哪些代码的一种非常简单的方式。主要缺点是:过多使用这个技巧将很难读懂代码。

goto 语句用法:

goto <labelname>;

标签定义:

<labelname>:

//code

 

4.3 分支

1.三种分支技术:三元运算符、if语句、switch语句

4.3.1 三元运算符

<test>?<resultTrue>:<resultFalse>

4.3.2 if语句

4.4.3switch 语句

1.switch语句可以一次将测试值与多个值进行比较,而不是仅一个测试条件。这种测试仅限于离散的值,而不是像“大于X”这样的子句。

2.执行完每个部分的代码后,还需要另一个语句break。在执行完一个case块之后,在执行另一个case语句是非法的。但是在C++中,可以运行完一个case语句后,运行另一个case语句。

3.除了可以使用break中断switch语句的执行,还可以使用return语句,中断当前函数的运行,这远胜于中断switch结构的执行(*******后补*********)。也可以使用goto语句,因为case语句实际上是在C#代码中定义的标签。

4.如果把多个case语句放在一起,其后加一行代码,实际上是一次检查多个条件。如果满足这些条件中的任何一个条件,就会执行代码。如:

switch<testVar>

{

case <comparisonVal1>:

case <comparisonVal2>:

<code to execute> ;

break ;

……

}

5.每一个comparisonValX都必须是一个常量。

 

4.4 循环

4.4.1  do.....while 

执行循环代码,然后进行一个布尔测试,如果测试结果为true,就再次执行这段代码。当为false时,就退出循环。

do 

{

<code to be looped>

}while(<test>) ;

 

4.4.2  while 

While循环非常类似与do循环,但是有一个重要的区别:while循环中的布尔测试是在循环开始时执行的,而不是最后。

while<test>

{
<code  to  be  looped>
 }

 

 

 4.4.3 for

这类循环可以执行指定的次数,并维护他自己的计数器。

for (<initialization>;<condition>;<operation>)

{

< code to loop>

}

 

4.4.4 循环中断

  1. break.——立即终止循环。
  2. continue ——立即终止当前的循环,继续执行下一次循环。
  3. goto ——可以跳出循环,到已标记好的位置上(不建议使用)。
  4. return ——跳出循环及其包含的函数。

 Notice

使用goto语句跳出循环是合法的,但是使用goto语句从外部进入循环是非法的。