Csharp+Asp.net系列教程(五)
2024-07-10 12:57:20
供稿:網友
 
本教程參考c#和asp.net程序設計教程撰寫,有什么不足之處請大家指出,或在老貓的理想blog留言。
 長假就要過去了。錢包也空空如也了,又要投入讓人生畏的緊張工作中了... 感慨雖然很多,可是教程還是要繼續的寫,先發幾句牢騷。^_^,不過教程可能以后要寫的慢些了,因為心有余而力不足丫!不說廢話進入正題:
 有網友說教程過于繁瑣,呵呵,下面正好要分析一下流程控制語句,有c程序設計基礎的就略過這段,考慮有新手還是簡要的介紹一下,詳細還請參閱譚浩強教授的《c語言程序設計》一書吧,很強,值得一看。
 c#中,有兩種選擇語句:if語句、switch語句。
 1.if (布爾表達式)
 {
 內嵌語句;
 }
 else if(布爾表達式)
 {
 內嵌語句;
 }
 else
 {
 內嵌語句;
 }//當布爾表達式的值為真時,執行if后面的內嵌語句。
 還是舉個小例子吧,要不總覺得不夠透徹。注意例子中穿插介紹的程序入口點帶參數的main()方法、還有char的isdigit方法。
 using system;
 class mikecat
 {
 public static void main(string[] args)
 {
 if(args.length!=1)//判斷參數個數的布爾運算
 {
 console.writeline("命令行參數只能是一個");
 }
 else
 {
 char c=args[0][0];//此處想和大家討論:第一維感覺是第幾個參數的索引,第二維是某個參數的字符數索引。不知是否正確,沒有查到相關資料,大家怎么看??
 if((c>='a')&&(c<='z'))
 {
 console.writeline("{0}是大寫字母",c);
 }
 if((c>='a')&&(c<='z'))
 {
 console.writeline("{0}是小寫字母",c);
 }
 if(char.isdigit(c))
 {
 console.writeline("{0}是數字",c);
 }
 }
 }
 }
 main 方法是程序的入口點,程序控制在該方法中開始和結束。該方法在類或結構的內部聲明。它必須為靜態的。它可以具有 void 或 int 返回類型。在 main 方法中創建對象和調用其他方法。聲明 main 方法時既可以不使用參數,也可以使用參數。
 main 方法可以是 void 類型:
 static void main() 
 {
  }
 它還可以返回 int:
 static int main() 
 {
 return 0;
 }
 main 方法可以使用參數,在這種情況下它采用下列形式之一:
 static int main(string[] args)
 static void main(string[] args)
 main 方法的參數是表示命令行參數的 string 數組。通常通過測試 length 屬性來檢查參數是否存在,例如:
 if (args.length == 0) 
 {
 console.writeline("please enter a numeric argument."); 
 return 1; 
 }
 還可以使用 convert 類或 parse 方法將字符串參數轉換為數值類型。例如,下面的語句使用 int64 類上的 parse 方法將字符串轉換為 long 型數字:
 long num = int64.parse(args[0]);
 也可以使用別名為 int64 的 c# 類型 long:
 long num = long.parse(args[0]);
 還可以使用 convert 類的方法 toint64 完成同樣的工作:
 long num = convert.toint64(s);
 
 char.isdigit 方法
 指示某個 unicode 字符是否屬于十進制數字類別。
 public static bool isdigit(char);
 指示指定字符串中位于指定位置處的字符是否屬于十進制數字類別。
 public static bool isdigit(string, int);
 using system;
 public class isdigitsample {
 public static void main() {
 char ch = '8';
 console.writeline(char.isdigit(ch)); // output: "true"
 console.writeline(char.isdigit("sample string", 7)); // output: "false"
 }
 }
 2.switch(控制表達式)
 {
 case 常量表達式:
 內嵌語句;
 [break;]
 [goto case 常量表達式]
 ...
 default:
 內嵌語句;
 }//switch語句是if語句的變種。如果把一個變量或表達式與許多不同的值進行比較并根據不同的比較結果執行不同的程序段。
 注意c#中如果要想實現象c/c++中那樣的直達功能,則要使用goto case和goto default跳轉語句。
 
 循環語句用于重復執行一行或多行代碼。c#中有四種循環語句:while、do...while、for、foreach語句。
 1.while(布爾表達式)
 {
 內嵌語句;
 }//計算布爾表達式的值。當布爾表達式為真時,執行一遍內嵌語句。
 不舉例子了,說說需要注意的部分吧:while語句是有條件地重復執行內嵌語句0次或多次。在while語句中,可以用break語句立即結束循環。另外也可以使用continue語句停止內嵌語句的執行,而繼續下一次循環。
 2.do...while語句
 區別與while語句首先要執行一次內嵌語句,然后才檢查布爾表達式。
 3.for 語句
 for(initializer;condition;iterator)
 {
 內嵌語句;
 }//initializer、condition、iterator均是可選項。initializer用于初始化循環控制變量,此變量可以有一個或多個(用逗號隔開);condition為循環控制條件,也可以有一個或多個語句;iterator按規律改變循環控制變量的值。
 4.foreach語句
 foreach語句從c#中新引入的,c/c++中沒有此語句。foreach用于枚舉集合中每個元素,并對每個元素執行內嵌語句。
 foreach(type identifier in expression)
 {
 內嵌語句;
 }//類型type和標識符identifier用來聲明循環變量,表達式對應要枚舉的集合。
 using system;
 using system.collections;
 class mikecat
 {
 public static void main()
 {
 idictionary envvars=environment.getenvironmentvariables();
 console.writeline("共有{0}個環境變量",envvars.keys.count);
 //循環輸出每個環境變量及其值
 foreach(string k in envvars.keys)
 {
 console.writeline("{0}={1}",k,envvars[k].tostring());//或者用envvars.value
 }
 }
 }
 本來還想分析一下異常控制和預處理指令。可是沒收住還是寫了這么長,下次分析這兩部分,希望大家關注!本次教程中的疑問希望大家一同幫助分析。