三元運算符:?
很多語言中都有這個運算符,原理都是一樣的,區別可能就在于書寫的格式上。習慣了excel的方式,總想把多個表達式用 , 號隔開,呵呵。在C#的三元運算符 ? 中,返回的兩個表達式之間,使用 : 號隔開,而不是 , 號,注意了:
string h = (k<10) ? "k小于10":"k大于或等于10";
當然,這種表達式適合簡單的比較后返回值處理,但對于根據比較結果而執行大量的代碼就不太適用了。
IF語句
IF語句沒有返回值(不像 ? ),而且可以執行復雜的語句代碼塊,使用 { } 號包圍起來就OK了。和其它的語言差不多:if……elseif……else……,還是舉個例子吧,看看編譯的效果:
string msg;
double i, j;
Console.WriteLine("請輸入第1個數的值:");
i = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("請輸入第2個數的值:");
j = Convert.ToDouble(Console.ReadLine());
if (i>j)
{
msg = "大于";
}else if (i == j)
{
msg = "等于";
}else
{
msg = "小于";
}
Console.WriteLine("第一個操作數 {0} 第二個操作數", msg);
Console.ReadKey();
這個例子比較簡單,但是卻從中看出一個編程思想。換作以前,自己肯寫會在每個if語句塊中加入Console.WriteLine來輸出結果,而這兒就精簡到只需要一條輸出語句。以后要在這方面多注意。
switch語句
IF語句雖然好用,但是遇到離散的值,用IF來比較,就會顯得很不好讀。另外,switch是將表達式的值與可選項進行匹配,而不是類似if的條件判斷(>、<)。被匹配的值必須是常數值,可以為字面值(1、2、3),或者是常量:
const string myName = "karli";
const string sexyName = "angelina";
const string sillyName = "ploppy";
string name;
Console.WriteLine("請輸入你的姓名:");
name = Console.ReadLine();
switch(name.ToLower())
{
case myName:
Console.WriteLine("你和我有相同的名字,{0}", myName);
break;
case sexyName:
Console.WriteLine("哇~,{0}名字好性感哦。", sexyName);
break;
case sillyName:
case "h":
{
Console.WriteLine("{0}這名字真是太漂了~~", sillyName);
Console.WriteLine("那當然~");
break;
}
default:
Console.WriteLine("hello {0}", name);
break;
}
Console.ReadKey();
每個case執行后的語句,都需要放置一個break,包括default也需要。另外,case也可以多個堆疊,只要其中一個滿足條件,就會執行后面的語句。而在case后,也可以使用 {} 把語句塊包圍起來,執行多條語句。
結語
其實在學習過程中,示例的編寫、調試通過是很重要的,不止加深了印象,還會引發你的思考。當然,要是有一些小的程序練練手,是非常不錯的哈,大家有需求或想法的話可以聯系我哈。