2011.2.19 上午
學習揚中科有關.net視頻c#基礎後總結的知識要點:(這些知識點都是楊中科老師在講課中提到或課件上的內容,本人將它們搜集整理,希望和大家分享並對想學.network的朋友有所協助)
1.用C#編寫一個10+20=?的小程式:
public static void Main(tring[] args)
{
int i1=10;
int i2=20;
int i3=i1+i2;
Console.WriteLine(i3); //也可用預留位置來實現:Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);在輸出參數較多時候要用預留位置
Console.ReadKey(); //注意MS-VS中快速鍵ctrl+j的使用
}
2.MS-VS中顯示程式碼號的步驟:工具>選項>文字編輯器>c#>顯示>行號。
3.Ⅰ.c#中轉義符“\”的用法:Response.Write(@"c:\...\...\abc.txt")或者是Response.Write("c:\\...\\...\\abc.txt")。@只對轉義符起作用,不能夠解決字串中雙引號的輸出問題;後者比較麻煩,一般不用。
eg:在螢幕上列印“ab”
string s="\"an\"";
Console.Write(s);
Ⅱ.轉義符和記憶體儲存無關:
eg:string s =Console.ReadLine(); //Console.WriteLine()返回的內容永遠是字串類型
Console.WriteLine(s);
運行後在螢幕中輸入a\nb列印出來的是a\nb;而不是a斷行符號換行b。
Ⅲ:int i=Convert.ToInt32(Console.ReadLine()) //這種寫法是正確的,只是沒有建立一個容器來存放資料
4.分行符號“\n”:Response.Write("a\nb"). //轉義符只針對在代碼中直接寫出的字串,對於程式中讀取出來的無效
5:變數:變數可以看做是專門放資料的容器,變數在定義的時候不可以重名,以保證資料的安全性和準確性。
(不表示不能重名eg:{int a =5;}int a =5;定義的變數只要所屬方法或類不同就可以同樣正常運行)。
命名規則:第一個字母必須是字母或者是底線,其後的字元可以是任意的數字,字母或者是底線。不能讓變數名全部使用c#的關鍵字做變數名。
eg:int int1=5; //這樣寫是正確的
//c#關鍵字判定方式:VS中用藍色顯示的字元就都是c#關鍵字;變數的命名規則和函數,類是一樣的
//c#中可以用中文做變數名|函數名|類名
6:變數類型:int,char,string,bool,double(瞭解),byte(瞭解),decimal(瞭解),long(瞭解),float(瞭解,在資料庫中一般工資的資料類型要用到這個)。
7:'a'是char類型;''a''是string類型。字串可以看作是多個字元組成的。
8:類型轉換convert:Convert.ToString(),Convert.ToInt32(),ToString().
9:運算子運算式:
●+,-,*,/(除),%(求餘)
●+可以用作字串串連,其他不可以
●++自增;--自減
●運算子優先順序:i1+i2*i3與(i1+i2)*i3;不要變態,括弧是王道
●變數可以和字面量混合運算:eg:i1=i2+20
10.賦值運算:i+=2; //i=i+2
(*) += , -= , *= , /= ;
11.int x,y=10,0;
x+y=80; //這樣寫是錯誤的,因為左邊的必須是變數!!不能是常量也不能是運算式
Console.Write(y);
12.Console.Write("{0}",i=1); //c#中賦值運算式也有值,他的值表示賦值後變數的值
Console.Write("{0}",i=1); 與Console.Write("{0}",i==1);的區別。
13.if語句:
int age=20
if(age>20)
{ Console.Write("成年人") }
else if(age>12)
{ Console.Write("兒童") }
else
{ Console.Write("嬰幼兒") } //if,else關鍵字後面只有一行代碼時候可以把{}省略掉。但關鍵字後的第二行代碼不和關鍵字有任何關係
//顧if語句只有一行代碼最好也加上大括弧
2011.2.19 下午
14.if語句及語句的嵌套:
eg1:提示使用者輸入年齡,如果大於等於18,則告知使用者可以查看,如果小於10歲,則告知不允許查看,如果大於等於10歲,則提示使用者是否繼續查看(yes,no)如果輸入的是yes則提示使用者可以查看,否則提示不可以查看。(測試邊界條件,-1,8888888888888888888888888.微軟如狼似虎的Tester)。代碼如下:
namespace test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入您的年紀:");
string strage = Console.ReadLine();
int age = Convert.ToInt32(strage);
if (age> 18)
{
Console.WriteLine("您可以繼續查看!");
}
else if (age< 10)
{
Console.WriteLine("很抱歉,您不能繼續查看!");
}
else
{
Console.WriteLine("您的年紀未滿18歲,回複yes則繼續查看,回複no則退出!");
if (Console.ReadLine() == "yes")
{
Console.WriteLine("您可以繼續查看!");
}
else if (Console.ReadLine() == "no")
{
Console.WriteLine("乖!");
}
else
{
Console.WriteLine("您所輸入的錯誤!");
}
}
Console.ReadKey();
}
}
}
eg2:依次提示使用者輸入兩個整數(假設i1,i2)。如果i1,i2都是正數,則將i1的值遞增一個數,然後列印i1+i2的值;如果i1,i2都是負數,則將i1的值遞減10個數,然後列印i1*i2的值;如果i1,i2中任一個為0,則提示資料有錯誤,否則計算i1*i2的絕對值。代碼如下:
namespace test
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入一個整數:");
string stri1 = Console.ReadLine();
int i1 = Convert.ToInt32(stri1);
Console.WriteLine("請再次輸入一個整數:");
string stri2 = Console.ReadLine();
int i2 = Convert.ToInt32(stri2);
if (i1 > 0 && i2 > 0)
{
i1 = i1+1;
Console.WriteLine("{0}+{1}={2}",i1,i2,i1+i2);
}
else if (i1 < 0 && i2 < 0)
{
i1 = i1 - 10;
Console.WriteLine("{0}*{1}={2}",i1,i2,i1*i2);
}
else if (i1 == 0 || i2 == 0)
{
Console.WriteLine("資料有誤,請從新輸入:");
}
else
{
int i3=i1*i2;
if (i3 < 0)
{
i3 = -i3;
}
Console.WriteLine(i3);
}
Console.ReadKey();
}
}
}
15.switch case 語句:被判定的值進入滿足條件的分支執行;case中的值必須是常量,不能是變數,運算式。
●類似於if...else...elseif...else,但是是離散值的判斷。
●switch一般都可以用if重寫,但是if不一定能用switch重寫。
●不要忘了BREAK,c#中的break不寫是不行的;除了合并case的情況。
eg:代碼如下:(PS:楊老師舉的這個例子很幽默啊,這種精神也是我佩服的地方,寓教於樂!)
int i = 2; //修改i的值以達到測試switch...case...語句功能特點的效果
switch (i)
{
case 2: //相當於if(i==2)
Console.WriteLine("你真2!");
Console.WriteLine("你才2!");
break; //c#中必須寫break,switch語句的每個分支都要有一個break,在C中雖然可以省略但會造成BUG
case 4:
Console.WriteLine("死去吧!");
break;
case 8:
Console.WriteLine("發發發!");
break;
default: //相當於if語句的else
Console.WriteLine("你輸入的{0}沒有意義!",i);
break;
}
Console.ReadKey();
●當幾個邏輯處理單元處理內容相同的時候可以將邏輯處理單元的內容合并起來。
eg:int i = 2;
switch (i)
{
case 2: //case後面只能跟常量:如“2”,“aaa”;不能跟變數
Console.WriteLine("你真2!");
Console.WriteLine("你才2!");
break;
case 8:
Console.WriteLine("發發發!");
break;
case 10:
case 20: //相當於if(i==10||i==20),這裡是唯一一個case後面不用break的情況
Console.WriteLine("你輸入的是整錢!");
Console.WriteLine("大爺!你真有錢!");
break;
default:
Console.WriteLine("你輸入的{0}沒有意義!",i);
break;
}
Console.ReadKey();
16.while迴圈
● while(i<100)
{
//列印i
i++; //只要while後小括弧中的運算式為true,就不斷一遍一遍執行大括弧中的代碼,就好像是一個死迴圈
}
●(*)do //先做。。。如果滿足則再來一次,直至while運算式為false.括弧中代碼至少被執行一次。
{ //很少用的一種文法
//列印i
i++;
}
while(i<100)
eg1: 用while計算1到100之間的整數和;(其實有更好的解法)
eg2:要求使用者輸入使用者名稱和密碼,只要不是admin,888888就一直提示要求重新輸入。
eg3:不斷要求使用者輸入一個數字,然後列印這個數位二倍,當使用者輸入q的時候程式退出。
eg4:不斷要求使用者輸入一個數字,當使用者輸入end的時候顯示剛才輸入的數字中的最大值。
未完待續。。。。我將分次把文章寫出來
接著下一篇:
http://www.cnblogs.com/CarreyWu/archive/2011/02/20/base_of_Csharp_02.html