程序的活動是通過語句(statement)來表達的。C#支持幾種不同的語句,許多語句是以嵌入語句的形式定義的。
塊(block)允許在只能使用單個語句的上下文中編寫多個語句。塊由一個括在大括號“{}”內的語句列表組成。
聲明語句(declaration statement)用於聲明局部變量和常量。
表達式語句(expression statement)用於運算表達式。表達式可以作為語句使用譯注3,包括方法調用、使用new運算符進行對象分配、使用“=”和復合賦值運算符進行賦值,以及使用“++”和“--”運算符進行增量和減量的運算。
選擇語句(selection statement)用於根據某個表達式的值,選擇執行若干可能語句中的某一個。這一組語句有if和switch語句。
迭代語句(iteration statement)用於重復執行嵌入語句。這一組語句有while,do,for和foreach語句。
跳轉語句(jump statement)用於傳遞程序控制。這一組語句有break,continue,goto,throw和return語句。
try-catch語句用於捕捉在塊的執行期間發生的異常。並且,try-finally語句用於指定一個終止代碼塊,不管異常出現與否,它總是被執行。
checked和unchecked語句用於控制整型算術運算和轉換的溢出檢查上、下文。
lock語句用於獲取給定對象的互斥鎖,執行語句,然後釋放該鎖。
using語句用於獲取一個資源,執行一個語句,然後處理該資源。
表1.5列出了C#的語句,並逐個提供了示例。
表1.5 C#的語句
語 句
示 例
局部變量聲明
static void Main(){ int a; int b=2,c=3; a=1; Console.WriteLine(a+b+c); }
局部常量聲明
static void Main(){ const float pi=3.1415927f; const int r=25; Console.WriteLine(pi * r * r); }
表達式語句
static void Main(){ int i; i=123; //表達式語句 Console.WriteLine(i); //表達式語句 i++; //表達式語句 Console.WriteLine(i); //表達式語句 }
if語句
static void Main(string[] args){ if(args.Length == 0){ Console.WriteLine("No arguments"); } else{ Console.WriteLine("One or more arguments"); } }
(續表)
語 句
示 例
switch語句
static void Main(string[] args){ int n = args.Length; switch(n){ case 0: Console.WriteLine("No arguments"); break; case 1: Console.WriteLine("One argument"); break; default: Console.WriteLine("{0} arguments", n); break; } }
while語句
static void Main(string[] args){ int i = 0; while(i < args.Length){ Console.WriteLine(args[i]); i++; } }
do語句
static void Main(){ string s; do{ s = Console.ReadLine(); if(s!=null) Console.WriteLine(s); } while(s != null); }
for語句
static void Main(string[] args){ for(int i = 0; i < args.Length; i++){ Console.WriteLine(args[i]); } }
foreach語句
static void Main(string[] args){ foreach(string s in args){ Console.WriteLine(s); } }
break語句
static void Main(){ while(true){ string s = Console.ReadLine(); if (s == null) break; Console.WriteLine(s); } }
continue語句
static void Main(string[] args){ for(int i = 0; i < args.Length; i++){ if (args[i].StartsWith("/")) continue; Console.WriteLine(args[i]); } }
goto語句
static void Main(string[] args){ int i = 0; goto check; loop: Console.WriteLine(args[i++]); check: if (i < args.Length) goto loop; }