Chapter04流程控制
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.2goto语句
1.C#允许给代码加上标签,这样就可以使用goto语句直接跳转到这些代码行上。该语句有其优缺点。主要的优点是:这是控制什么时候执行哪些代码的一种非常简单的方式。主要缺点是:过多使用这个技巧将很难读懂代码。
goto语句用法:
goto<labelname>;
标签定义:
<labelname>:
//code
4.3分支
1.三种分支技术:三元运算符、if语句、switch语句
4.3.1三元运算符
<test>?<resultTrue>:<resultFalse>
4.3.2if语句
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>:
<codetoexecute>;
break;
……
}
5.每一个comparisonValX都必须是一个常量。
4.4循环
4.4.1do.....while
执行循环代码,然后进行一个布尔测试,如果测试结果为true,就再次执行这段代码。当为false时,就退出循环。
do
{
<codetobelooped>
}while(<test>);
4.4.2while
While循环非常类似与do循环,但是有一个重要的区别:while循环中的布尔测试是在循环开始时执行的,而不是最后。
while(<test>)
{<codetobelooped>}
4.4.3for
这类循环可以执行指定的次数,并维护他自己的计数器。
for(<initialization>;<condition>;<Operation>)
{
<codetoloop>
}
4.4.4循环中断
Notice:
使用goto语句跳出循环是合法的,但是使用goto语句从外部进入循环是非法的。
新闻热点
疑难解答