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語句從外部進入循環是非法的。
新聞熱點
疑難解答