程序的活動是通過語句(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;
}