10 語句--C#

1. 什么是語句

語句是描述某個類型或讓程序執(zhí)行某個動作的源碼指令幔烛。

語句主要有3中類型:聲明語句藏姐,嵌入語句役首,便簽語句。

簡單語句由一個表示式和后面的分號組成蚓曼。

塊是一對大括號括起來的語句序列都许,可包含聲明語句千康,嵌入語句嫩痰,標簽語句,嵌套塊啄寡。

????????//簡單聲明

? ? ? ? ? ? int x = 10;

? ? ? ? ? ? int y;

? ? ? ? ? ? //嵌入式語句

? ? ? ? ? ? {

? ? ? ? ? ? ? ? int z = 10;

? ? ? ? ? ? ? ? for (int i = 0; i < z; i++)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? y += i;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }


空語句豪硅,僅由一個分號組成

if (x < y)

????? ;

?else

? ? ? ?y++;


2. 表達式語句

表達式求值,被視為副作用挺物。將表達式右邊的值賦給左邊的變量懒浮。


3.控制流程語句

條件語句: if, if...else..., switch

循環(huán)語句: while, do , for , foreach

跳轉語句:break, continue, return, goto, throw

條件執(zhí)行和循環(huán)結構,除foreach外砚著,都需要一個測試表達式或條件以決定程序是否繼續(xù)執(zhí)行次伶。


4. if 語句

按條件執(zhí)行。

if (boolExpr)
? ? statement


5. if ...else...語句

if(boolExpr)

? ? Statement1

else

? ? statement2?

if ...else if...else 語句


6. while 語句

while循環(huán)是一種簡單的循環(huán)結構稽穆。

while(boolExpr)

? ? Statement


7. do 循環(huán)

do 循環(huán)是一種簡單循環(huán)結構冠王,其測試表達式在循環(huán)的底部執(zhí)行。

do

? ? statement

while(boolExpr);

循環(huán)體至少執(zhí)行一次舌镶,測試表示的關閉圓括號后需要一個分號


8. for循環(huán)

for( initizlizer;? Expr, IterationExpr)

? ? Statement

for語句中的變量的作用域柱彻,只在for語句內部可見。


初始化和迭代表示中的多表達式

初始化表達式和迭代表達式都可以包含多個表達式餐胀,逗號隔開哟楷。

????????????for(int i=0, j=10; i<5; i++,j+=10)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Console.WriteLine($"{i}? {j}");

? ? ? ? ? ? }

輸出:

0 10

1? 20

2? 30

3? 40

4? 50


9. switch語句

實現(xiàn)多路分支。

switch語句由一個通常稱為測試表達式或匹配表達式的參數(shù)否灾。這些測試表達式必須是以下數(shù)據(jù)類型之一:char, string, bool, integer(int, byte, long等)卖擅,enum。C# 7.0中允許為任何類型墨技。

switch包含0個活多個分支塊惩阶。

每個分支塊都以一個或多個分支標簽開頭。

每個分支必須遵守“不穿透規(guī)則”,通常是break語句結束來實現(xiàn)達到終點扣汪。還可以使用return, goto, continue断楷, throw跳轉。

分支塊按照順序執(zhí)行私痹。

其它類型的模式表達式

case標簽由關鍵字case和其后的表達式模式構成

default 段不是必須的


分支標簽

C# 7.0之前必須是常量表達式,C# 7.0 之后可以是任意類型统刮。


10. 跳轉語句

當控制流程到達跳轉語句紊遵,程序執(zhí)行無條件的轉移到程序的另一部分。

break, continue, return, goto, throw


break 語句

可以用在 switch語句中外侥蒙,還可以用在for暗膜, foreach, while,? do 語句中。break 導致執(zhí)行跳出最內層封裝語句鞭衩。

????????????int x = 0;

? ? ? ? ? ? while(true)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? x++;

? ? ? ? ? ? ? ? if (x > 3)

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? Console.WriteLine(x);

? ? ? ? ? ? }

continue語句

導致程序執(zhí)行轉到下列類型循環(huán)的最內層封裝語句的頂端学搜。 while, do, for , foreach

????????for(int x=0; x<5; x++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (x < 3)

? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? Console.WriteLine($"Value is {x}");

? ? ? ? ? ? }


標簽語句

標簽語句由一個標識符后面跟著一個冒號,在跟一條語句組成论衍。

Identifier:Statement

允許控制代碼從代碼的其它部分轉移到該語句瑞佩; 只允許用在塊內部。


goto語句

無條件的控制轉移到一個標簽語句坯台。

goto? identifier

goto 語句必須在標簽語句作業(yè)域之內炬丸,可以跳到它所在塊內的任何標簽,或者跳到任何嵌套它的塊內標簽語句

不能跳入嵌套在其所在塊內部的任何塊。goto 語句會導致弱化結構稠炬,難以調試和維護焕阿,盡量不使用。


11. Using 語句

某些類的非托管對象有數(shù)量限制或者很耗系統(tǒng)資源首启,代碼在使用完暮屡,應盡快釋放它們。using語句由助于簡化該過程毅桃,并確保資源被適當?shù)奶幹谩?/p>

資源是指實現(xiàn)了System.IDisposable接口的類或結構褒纲。分配資源,使用資源疾嗅,處置資源外厂。

包裝資源的使用

using語句幫助減少意外的運行時錯誤帶來的潛在問題。using語句隱式產(chǎn)生處置該資源的代碼

using(Resource Indetifier = Exprssion) //分配資源

? ? statement //使用資源


using(TextWriter writer = File.CreateText("Test.txt"))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? writer.WriteLine("This is only test string....");

? ? ? ? ? ? }

? ? ? ? ? ? using(TextReader reader = File.OpenText("Test.txt"))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? string getString ;

? ? ? ? ? ? ? ? while(null!= (getString = reader.ReadLine()))

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Console.WriteLine(getString);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }


多個資源和嵌套

using 語句可以用于相同類型的多個資源代承,資源聲明用逗號隔開汁蝶。

using(ResourceType Id1=Expr1, Id2=Expr2....) EmbededStatement


using語句的另一種形式,不推薦使用论悴,不確保用完資源后總調用Dispose方法

using( Expression) EmbededStatement


12. 其它語句

checked, uncheked 語句

foreach語句

try...throw...finally 異常處理語句

return 語句

yield語句

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末掖棉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膀估,更是在濱河造成了極大的恐慌幔亥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件察纯,死亡現(xiàn)場離奇詭異帕棉,居然都是意外死亡,警方通過查閱死者的電腦和手機饼记,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門香伴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人具则,你說我怎么就攤上這事即纲。” “怎么了博肋?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵低斋,是天一觀的道長。 經(jīng)常有香客問我匪凡,道長膊畴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任病游,我火速辦了婚禮巴比,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己轻绞,他們只是感情好采记,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著政勃,像睡著了一般唧龄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奸远,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天既棺,我揣著相機與錄音,去河邊找鬼懒叛。 笑死丸冕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的薛窥。 我是一名探鬼主播胖烛,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诅迷!你這毒婦竟也來了佩番?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤罢杉,失蹤者是張志新(化名)和其女友劉穎趟畏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滩租,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡赋秀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了律想。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猎莲。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜘欲,靈堂內的尸體忽然破棺而出益眉,到底是詐尸還是另有隱情晌柬,我是刑警寧澤姥份,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站年碘,受9級特大地震影響澈歉,放射性物質發(fā)生泄漏。R本人自食惡果不足惜屿衅,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一埃难、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦涡尘、人聲如沸忍弛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽细疚。三九已至,卻和暖如春川梅,著一層夾襖步出監(jiān)牢的瞬間疯兼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工贫途, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吧彪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓丢早,卻偏偏與公主長得像姨裸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子香拉,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容