本教程參考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
}
}
}