成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C#基礎(chǔ)知識的示例分析

這篇文章主要介紹了C#基礎(chǔ)知識的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司是專業(yè)的鄄城網(wǎng)站建設(shè)公司,鄄城接單;提供網(wǎng)站設(shè)計制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行鄄城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

關(guān)鍵字:C#的關(guān)鍵字全部大寫

注釋:跟C++ / Java 風(fēng)格一致,///是文檔注釋,只能寫在類、方法、屬性的前面。不能用來注釋單個變量。

C#語言也是嚴格區(qū)分大小寫的

C#中的常量:

常量,顧名思義,就是“不會改變的量”。

我們平時書寫的數(shù)字(比如12.85)、字符(比如'F')、字符串(比如"謝謝"),它們都屬于“字面常量”。

有一些常量既重要又容易出錯,比如圓周率π的值為3.1415926......,所以,我們常常會使用自定義常量。請看下面的代碼:

  static void Main(string[] args)
        {
            const double PI = 3.1415926;                        //自定義常量PI
            Console.Write("半徑為4的圓的周長為:");      //字符串常量
            Console.WriteLine(PI * 4 * 2);                        //使用自定義常量PI
            Console.Write("半徑為4的圓的面積為:");      //字符串常量
            Console.WriteLine(PI * 4 * 4);                        //使用自定義常量PI
        }

需要解釋2個關(guān)鍵字: const 關(guān)鍵字,表明PI是一個常量; double 關(guān)鍵字,表明PI的類型為“雙精度浮點型”(一種精度很高的數(shù)字類型)。

你會發(fā)現(xiàn),這段代碼中使用了2次圓周率(周長、面積),但是因為使用自定義常量,所以字面常量3.1415926只書寫了一次。這樣做避免了重復(fù)書寫導(dǎo)致的錯誤。

還有一點要特別注意:常量在聲明時賦值,之后是不能修改的。

C#的變量

上一節(jié)我們學(xué)習(xí)了常量,但編程中使用最多的是變量,這一節(jié)我們學(xué)習(xí)變量。

變量能夠存儲數(shù)據(jù),并且與常量不同,變量存儲的數(shù)據(jù)可以修改。比如今年18歲,明年可以變成19歲。

使用變量分為3步:聲明、賦值、使用。

聲明變量的語法:數(shù)據(jù)類型 變量名;

給變量賦值的語法:變量名=值;

請閱讀下面的代碼:

        static void Main(string[] args )
        {
            int age;                //聲明一個類型為int的變量age
            age = 18;             //給變量age賦值為18
            Console.WriteLine("我今年" + age+"歲"); //使用變量age
            age = 19;             //修改age變量的值
            Console.WriteLine("我今年" + age+"歲"); //使用變量age
        }

變量的聲明和賦值可以同時完成(合在一起,也叫初始化)

C#的數(shù)據(jù)類型

我們知道聲明變量需要寫出數(shù)據(jù)類型,我們今天要學(xué)習(xí)的是最常用的幾種類型。
字符類型 char ,存儲用 '' (單引號)括起來的一個字符,例如:

char sex='男';//存儲性別

字符串類型 string ,存儲用“”(雙引號)括起來的一串字符,例如:

string address="北京市宣武區(qū)牛街北口";//存儲地址

整數(shù)類型 int ,存儲整數(shù),例如:

int age=23;//存儲年齡

雙精度浮點型 double ,存儲小數(shù),例如:

double salary=7991.63;//存儲工資

以上四種是最常用的數(shù)據(jù)類型,其他常用類型,我們會隨著課程深入慢慢介紹。

需要注意的是,某種類型的變量,只能存儲這種類型的數(shù)據(jù),否則,可能會出錯。

C#的類型轉(zhuǎn)換

上一節(jié)我們學(xué)習(xí)了4種數(shù)據(jù)類型,也提到每種類型的變量只能存這種類型的數(shù)據(jù)??墒?,有時候真的需要把不同類型的值放在一起運算,比如這種:3.5+8 這時候怎么辦呢?有下面2種情況:

自動類型轉(zhuǎn)換:2種不同類型的數(shù)據(jù)運算,低精度類型會自動轉(zhuǎn)換為較高精度的類型。
以3.5+8為例,顯然數(shù)字8的精度較低(int),而3.5的精度較高(double),所以,8會自動轉(zhuǎn)換為double型,即轉(zhuǎn)換為3.5+8.0進行運算,結(jié)果為11.5。

請看這個例子:double d=2; 2的精度顯然低于變量d的精度,所以2會自動轉(zhuǎn)換為2.0然后賦值給d。
再看這個例子:int i=3.0;變量i的精度低于3.0,但是由于i已經(jīng)聲明為int型的變量,變量的值可以變,但變量的類型可不能變來變?nèi)サ?,所以這條命令會出錯的。

強制類型轉(zhuǎn)換:無法自動轉(zhuǎn)換為我們需要的類型,可以用強制類型轉(zhuǎn)換,比如上例可以這樣完成:

int i=(int)3.0;

數(shù)字前面的(int)表示轉(zhuǎn)換的目標類型為int,3.0會被強制轉(zhuǎn)換為3。
需要注意, double 型強制轉(zhuǎn)換為int型將失去小數(shù)部分,比如(int)2.8,我們得到的將是2。

C#標識符的命名規(guī)則

程序中的變量名、常量名、類名、方法名,都叫做標識符。C#有一套標識符的命名規(guī)則,如果命名時不遵守規(guī)則,就會出錯。這套規(guī)則簡單說有下面三條:

①標識符只能由英文字母、數(shù)字和下劃線組成,不能包含空格和其他字符。

錯誤的標識符聲明:string $user; //錯在使用了其他字符

②變量名不能用數(shù)字開頭。

錯誤的標識符聲明:double 6h;//錯在用數(shù)字開頭

③不能用關(guān)鍵字當變量名。

錯誤的標識符聲明:char static ;//錯在用關(guān)鍵字static做變量名

C#的算術(shù)運算符(一)

計算機程序,當然少不了“計算”,要計算就必須了解運算符。今天,我們先學(xué)習(xí)算術(shù)運算符中的加、減、乘、除。

加:+ 。加號有2個用途:當用加號連接兩個數(shù)字時,會計算出這兩個數(shù)字的和。比如:

Console.WriteLine(9+2.2);//輸出11.2

另一種情況,當加號兩邊包含字符串的時候,會把兩邊的表達式連接成新的字符串。比如:

Console.WriteLine(9+"2.2");//輸出92.2,因為"2.2"是字符串,所以9也被轉(zhuǎn)換為"9",+起的作用是連接字符串

減:- 。減號的作用就是減法。比如:

Console.WriteLine(15-23);//輸出-8

乘:* 。乘號的作用是求2數(shù)的乘積。比如:

Console.WriteLine(0.8*3);//輸出2.4

除:/ 。除號的作用是求2數(shù)相除的商。比如:

Console.WriteLine(2/0.5);//輸出4.0

但是,2個整數(shù)相除,結(jié)果僅保留整數(shù)部分,小數(shù)部分會被舍去。

Console.WriteLine(5/10);//輸出0

C#的算術(shù)運算符(二)

這一節(jié)我們學(xué)習(xí)取余運算符。

C#中的取余運算符就是%。上一節(jié)學(xué)習(xí)的除號,作用是求2個數(shù)字相除的商,而取余運算符%的作用是求兩個數(shù)字相除的余數(shù)。比如:

Console.WriteLine(19/5);//求19除以5的商,輸出3Console.WriteLine(19%5);//求19除以5的余數(shù),輸出4(商3余4)

編程中,%常常用來檢查一個數(shù)字是否能被另一個數(shù)字整除。比如下面的代碼片段:

int number = 29;
Console.WriteLine(number%2);//求number除以2的余數(shù)

如果輸出0,表示沒有余數(shù),即number能夠被2整除(是偶數(shù));如果輸出1,表示有余數(shù),即number不能被2整除(是奇數(shù))。

C#的算術(shù)運算符(三)

這一節(jié)學(xué)習(xí)兩個特別的運算符++和--。

++,叫做自加運算符。比如你今年18歲,明年長了一歲,用代碼寫出來是這樣:

int age=18;//今年18歲
age=age+1;//明年,在今年的年齡上加1歲

也可以寫成這樣:

int age=18;//今年18歲
age++;//明年,在今年的年齡上加1歲

age++;age=age+1;作用相同,都是變量的值+1。

--,叫做自減運算符。同理,你今年18歲,用了XX護膚水以后,明年變成17歲了,可以這樣寫:

int age=18;//今年18歲
age--;//等同于 age=age-1;

另外,age++;age--;也可以寫作++age;--age;

但請注意:如果與其他運算在同一語句中,++寫在變量前面或后面,算法不一樣,請看下例:

Console.WriteLine(age++);作用等同于下面兩句:

Console.WriteLine(age);//先打印a
ge=age+1;//后自加

Console.WriteLine(++age);作用等同于下面兩句:

age=age+1;//先自加
Console.WriteLine(age);//后打印

你看,運算順序不一樣吧,所以輸出的結(jié)果也不會相同。

C#的比較運算符

比較數(shù)字大小,或者比較數(shù)字相等的運算符是比較運算符。C#中的比較運算符有:

C#基礎(chǔ)知識的示例分析

注意:表示兩個值相等的“等于”是由2個“=”組成的。

比較運算的結(jié)果,都是布爾類型( bool ),bool類型我們是第一次提到,它表示邏輯上的真(成立)與假(不成立)。真與假用關(guān)鍵字 true 和 false 表示。

C#基礎(chǔ)知識的示例分析

上面程序中, x>=y 不成立會返回 false , x<=y 成立,會返回 true 。運行結(jié)果:

C#基礎(chǔ)知識的示例分析

C#的邏輯運算符(一)

邏輯運算符用來連接多個 bool 類型表達式,實現(xiàn)多個條件的復(fù)合判斷。C#中的邏輯運算符包括:邏輯非( ! )、邏輯與( && )、邏輯或( || )。

邏輯非用來對某一個 bool 類型表達式取反,即“真變假”或“假變真”。請看下面的代碼:

Console.WriteLine(1 > 0);//條件表達式為true,輸出TrueConsole.WriteLine(!(1 > 0));//用邏輯非對條件表達式取反,輸出False

邏輯與用來判斷 2 個 bool 類型表達式是否同時為 true 。請看下面的代碼:

int x = 5, y = 2;//同時聲明2個int型變量并賦值Console.WriteLine(x>3 && y>3);//判斷x>3和y>3是否同時為true,由于y>3為false,所以整個表達式為false

只有當&&兩邊的表達式均為 true 時,整個表達式才為 true ;若任意一個表達式為 false ,整個表達式即為 false 。

邏輯或用來判斷2個 bool 類型表達式中是否有一個為 true 。請看下面的代碼:

int x = 5, y = 2;//同時聲明2個int型變量并賦值Console.WriteLine(x>3 || y>3);//判斷x>3和y>3是否有一個為true,由于x>3為true,所以整個表達式為true

只要||兩邊的表達式有一個為 true ,整個表達式即為 true ;若兩邊的表達式均為 false ,整個表達式為 false 。

對比一下,就是說: && 運算符,兩邊同真才算真,一邊為假就算假; || 運算符,一邊為真即為真,兩邊同假才是假。

C#的邏輯運算符(二)

作為對上一節(jié)學(xué)習(xí)的鞏固,這一節(jié)我們通過幾個示例熟悉邏輯運算符的應(yīng)用。第一個示例是關(guān)于邏輯與,比如小張想結(jié)婚,未來丈母娘開出的條件是:存款必須過10萬,必須有房子,這兩條少一條都不行。既然2個條件都是“必須”做到,那就需要同時滿足,適合用邏輯與連接:

C#基礎(chǔ)知識的示例分析

運行結(jié)果為:False

下一個示例是關(guān)于邏輯或,比如麗麗選擇男朋友的標準,要么是“工程師”,要么是“運動員”,二者居其一即可:

C#基礎(chǔ)知識的示例分析

運行結(jié)果為:True

C#的賦值運算符

前面,我們已經(jīng)學(xué)過一個賦值運算符“=”,這次我們學(xué)習(xí)一下其他的賦值運算符:

加賦值“+=”:先加后賦值。請看下面的例子:

int x=5;
x += 2;//這句等同于x=x+2;執(zhí)行后,x的值為7

減賦值“-=”:先減后賦值。請看下面的例子:

int x=5;
x -= 2;//這句等同于x=x-2;執(zhí)行后,x的值為3

乘賦值“*=”:先乘后賦值。請看下面的例子:

int x=5;
x *= 2;//這句等同于x=x*2;執(zhí)行后,x的值為10

除賦值“/=”:先除后賦值。請看下面的例子:

int x=5;
x /= 2;//這句等同于x=x/2;執(zhí)行后,x的值為2

取余賦值“%=”:先取余后賦值。請看下面的例子:

int x=5;
x %= 2;//這句等同于x=x%2;執(zhí)行后,x的值為1

與其他運算符從左向右計算不同,賦值運算符從右向左計算。

C#的運算符優(yōu)先級

前面我們學(xué)習(xí)了那么多運算符,如果編程中同時使用了多個運算符,到底哪一個會先運算呢?這就是優(yōu)先級的問題。C#運算符的優(yōu)先級請參考下面的順序:

①括號。學(xué)數(shù)學(xué)的時候我們就知道,要先計算括號里面的內(nèi)容。C#語言也是一樣,如果有多層括號,要從里向外計算。括號優(yōu)先級最高。

②一元運算符。有些運算符兩邊有2個操作數(shù),比如2+3、6%5等等,這些叫做二元運算符。只有一個操作數(shù)的叫做一元運算符,它們的優(yōu)先級高于二元運算符。一元運算符包括:++(自加) 、 --(自減) 、 !(邏輯非)。

③*(乘)、/(除)、%(取余)。

④+(加)、-(減)。

⑤>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。

⑥==(等于)、!=(不等于)。

⑦&&(邏輯與)。

⑧||(邏輯或)。

⑨賦值運算符。包括:=、+=、-=、*=、/=、%=。

另外,還需要注意一點:優(yōu)先級相同的運算符從左向右計算(賦值運算符相反)。

請看下面這段代碼:

bool b = 20 - (15 - 8) * 2 > 10 && (2 % 2 * 2 + 2) > 2;
Console.WriteLine(b);

分析:首先計算優(yōu)先級最高的括號,(15-8)得到7,(2%2*2+2)則需要先計算%和*,后算+,結(jié)果是2,表達式就變成了:

bool b=20-7*2>10&&2>2;

接下來優(yōu)先級最高的是7*2,然后是減法,變成:

bool b=6>10&&2>2;

繼續(xù)計算兩個大于號,得到:

bool b=false&&false;

最后的結(jié)果當然是false:

C#基礎(chǔ)知識的示例分析

C#用流程圖描述程序邏輯

流程圖是程序步驟的圖形化表示方法。流程圖中包括如下符號:

C#基礎(chǔ)知識的示例分析

以上圖形中,流程線用來連接相鄰的兩個步驟;每一個程序都有且僅有一個開始和結(jié)束。

以下流程圖描述的是,求2個浮點數(shù)的和,后邊是用C#實現(xiàn):

C#基礎(chǔ)知識的示例分析C#基礎(chǔ)知識的示例分析

C#中判斷和分支

走到岔路口,需要選擇方向。編寫程序也會遇到判斷和分支。請看下面的流程圖,判斷手機賬戶余額是否不足10元,如果不足給出提示:

C#基礎(chǔ)知識的示例分析

這個程序在“balance<10”這個步驟出現(xiàn)了分支,“balance<10”被稱為判斷( bool 類型),當判斷為 true 時,執(zhí)行左邊的分支,輸出提示;當判斷為 false 時,執(zhí)行右邊的分支,不輸出任何內(nèi)容。

在C#中,這個結(jié)構(gòu)成為條件結(jié)構(gòu),通常用 if 關(guān)鍵字來實現(xiàn):

C#基礎(chǔ)知識的示例分析

當 if 右邊的判斷為 true 的時候,會執(zhí)行分支一;如果判斷為 false ,則不會執(zhí)行分支一。

C#中if...else條件結(jié)構(gòu)

前一節(jié)我們學(xué)習(xí)了 if 條件結(jié)構(gòu)。條件結(jié)構(gòu)可以有2個分支,比如下面的流程圖,判斷一個整數(shù)是奇數(shù)還是偶數(shù):

C#基礎(chǔ)知識的示例分析

這個流程圖從C#實現(xiàn)如下,其中,條件為 true 時執(zhí)行的分支寫在 if() 后面的{}中;條件為 false 時執(zhí)行的分支寫在 else 后面的{}中。

C#基礎(chǔ)知識的示例分析

這個由 if 和 else 組成的結(jié)構(gòu)是條件結(jié)構(gòu)的一種,它的基本邏輯是:當條件為 true 時,執(zhí)行分支1,否則,執(zhí)行分支2。這段程序中,變量num能夠被2整除時會執(zhí)行分支1,不能被2整除時執(zhí)行分支2。程序的運行結(jié)果是:

C#基礎(chǔ)知識的示例分析

每一個 if...else 結(jié)構(gòu)都包含 1 個條件和 2 個分支,而程序會根據(jù)條件的真與假,選擇執(zhí)行其中的某一個分支。條件必須為 bool 類型的表達式。

C#中嵌套的if結(jié)構(gòu)

程序開發(fā)中,往往需要先判斷一個條件是否成立,再判斷另一個條件。比如下面的例子:驗證賬號是否為“admin”,如果不是則提示錯誤;如果是,則驗證密碼是否為“bj2022”:

C#基礎(chǔ)知識的示例分析

用C#實現(xiàn)如下:
C#基礎(chǔ)知識的示例分析

外層的if (userName == "admin") 會被首先判斷,如果為 false ,就會輸出“用戶名錯誤!”;如果為 true ,再判斷內(nèi)層的if (password == "bj2022")

C#中多重if結(jié)構(gòu)

如果,有多個條件,其中只有一個成立,應(yīng)該怎樣判斷呢?比如小明考試,90分以上獎勵一臺手機,80-89分獎勵一個滑板,60-79分獎勵一個燒餅,60以下沒有獎勵,0-100的分數(shù)被劃分為4檔,需要做3次條件判斷。如果用上一節(jié)學(xué)習(xí)的嵌套if結(jié)構(gòu)完成,3層if的嵌套會使程序變得很復(fù)雜。本節(jié)我們使用多重 if 結(jié)構(gòu)實現(xiàn),它的基本語法為:

C#基礎(chǔ)知識的示例分析

程序運行時,將從上到下依次判斷條件,若某個條件為 true ,則執(zhí)行對應(yīng)的分支,并且停止后面條件的判斷。比如下面的代碼,將輸出“獎勵一個燒餅”:

C#基礎(chǔ)知識的示例分析

C#中else與if的匹配

if...else 條件結(jié)構(gòu)中,如果某個分支只包含一條命令,那么是可以省略大括號{}的。比如上一節(jié)的練習(xí),可以簡化為:

C#基礎(chǔ)知識的示例分析

請注意,如果分支中包含2條以上的命令,是不能省略{}的。

如果 if 和 else 比較多,又省略了{},怎么判斷那一個 if 和哪一個 else 是一對呢?請看下面的代碼:

C#基礎(chǔ)知識的示例分析

當出現(xiàn)多個 if 和 else ,又沒有{}來界定范圍時,請參考下面2條原則:

①每一個 else 與前面離它最近的 if 配對。按照這個原則,上面示例代碼的兩個 else 都與第二個 if 配對,這顯然是不可能的,于是又有了第二個原則。

②多個 else 都與同一個 if 相近時,最內(nèi)層的 else 優(yōu)先配對。這樣,第一個 else 處于內(nèi)層,就與第二個 if 優(yōu)先配對,第二個 else 只能與第一個 if 配對。上面的示例代碼會輸出“C”。

根據(jù)這兩個原則,上面的代碼等同于如下的規(guī)范代碼:

C#基礎(chǔ)知識的示例分析

編寫條件結(jié)構(gòu)時,盡可能加上 {} 可以省掉不必要的錯誤和麻煩。

C#的條件運算符

C#提供了一種條件運算符,能夠代替簡單的 if...else 結(jié)構(gòu)。這種條件運算符的語法如下:

條件表達式 ? 分支1 : 分支2

?: 就是條件運算符,可以看到它有3個操作數(shù),所以又被稱為三元運算符。它的運算邏輯是:當條件表達式為 true 時,執(zhí)行分支1;當條件表達式為 false 時,執(zhí)行分支2。

下面的例子中,根據(jù)年齡的大小,輸出“成年人”或“未成年人”:

C#基礎(chǔ)知識的示例分析

因為age=17,所以條件表達式age>=18的值為 false ,返回“未成年人”。

C#的switch結(jié)構(gòu)

if...else 之外,C#中還有一種 switch 條件結(jié)構(gòu),可以用來對變量進行多個分支的等值判斷。語法如下:

C#基礎(chǔ)知識的示例分析

(變量)與每一個 case 后面的常量進行等值比較,如果相等,就執(zhí)行對應(yīng)的分支。執(zhí)行分支以后, break 關(guān)鍵字會使 switch 結(jié)構(gòu)中止,不會再判斷后面的常量。如果變量與所有的常量都不相同,則執(zhí)行 default 后面的分支。

下面的代碼,根據(jù)運算符完成了四則運算中的一項:

C#基礎(chǔ)知識的示例分析

上面的代碼,因為變量oper的值與 case '*' 匹配,所以會輸出乘積“18”。

switch 中的(變量)只能是3種類型:整型(如 int )、字符型( char )、字符串類型( string )。

C#循環(huán)流程圖和while循環(huán)

 程序連續(xù)的重復(fù)一個步驟稱為“循環(huán)”。循環(huán)可以簡化我們的代碼,減少冗余。例如,打印 1-10 的整數(shù),我們可以寫 10 條打印語句,也可以這樣:

C#基礎(chǔ)知識的示例分析

這個循環(huán)結(jié)構(gòu),會首先判斷 x<=10 ,條件為真時執(zhí)行循環(huán)體(“輸出x”和“x++”),之后,再次判斷條件 x<=10 ,若條件為真則繼續(xù)執(zhí)行循環(huán)體......若條件為假,則結(jié)束循環(huán)。

簡單的說,循環(huán)是由循環(huán)體(需要重復(fù)執(zhí)行的命令)和循環(huán)條件組成的。運行時,先判斷循環(huán)條件,若條件為 true ,就執(zhí)行循環(huán)體一次,然后再判斷條件...當條件為 false 時,結(jié)束循環(huán)。上面的流程圖,當變量 x 累加到 11 時,循環(huán)條件為 false ,循環(huán)就會結(jié)束。

C#中,可以用 while 循環(huán)結(jié)構(gòu)來實現(xiàn):

C#基礎(chǔ)知識的示例分析

對比代碼和流程圖可知, while 循環(huán)結(jié)構(gòu)中,循環(huán)條件寫在 () 中,循環(huán)體寫在 {} 中。運行結(jié)果:

C#基礎(chǔ)知識的示例分析

C#算法——求和

這一節(jié),我們學(xué)習(xí)用循環(huán)累加的方式求和。

上一節(jié),我們曾經(jīng)循環(huán)打印過 1-10 的整數(shù),如果聲明一個變量,在打印的過程中,把每一個數(shù)字都累加到變量里面,就可以得到 1-10 的和。求和算法的基本步驟:

①聲明變量 sum 用來存儲“和”。 sum 的初始值賦為 0 。

②循環(huán),用變量 x 訪問每一個數(shù)字,用 sum+=x 的方式累加。(即 sum=sum+x; )

③循環(huán)結(jié)束后, sum 中存儲的即是和。

C#基礎(chǔ)知識的示例分析

運行結(jié)果如下:

C#基礎(chǔ)知識的示例分析

C#中for循環(huán)

前面已經(jīng)學(xué)習(xí)了 while 循環(huán),C#中還有一種非常有用的 for 循環(huán),特別適合于“已知循環(huán)次數(shù)”的循環(huán)。
比如,循環(huán)打印3次“我能行!”,用 while 循環(huán)可以這樣寫:

C#基礎(chǔ)知識的示例分析

而用 for 循環(huán)這樣寫:

C#基礎(chǔ)知識的示例分析

可以看出來, while 循環(huán)有的變量聲明、循環(huán)條件、變量自加, for 循環(huán)一個也不缺,但是 for 循環(huán)把這些跟循環(huán)次數(shù)有關(guān)的元素都放在 ( ; ; ) 中,使得{}中的循環(huán)體更加純粹,程序結(jié)構(gòu)更加清晰。

*  for 循環(huán) ( ; ; ) 中的兩個分號是不能缺少的。

for 循環(huán)運行時,首先進行變量聲明和賦值;接下來判斷循環(huán)條件,若條件為 true ,則執(zhí)行循環(huán)體一次,若條件為 false ,則結(jié)束循環(huán);執(zhí)行循環(huán)體后,進行變量自加。然后會進入下一次循環(huán)。

C#基礎(chǔ)知識的示例分析

C#中do…while循環(huán)

C#中, do...while 循環(huán)也是一種常用的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)各部分運行順序如下:

C#基礎(chǔ)知識的示例分析

從上面的示意可以看出, do...while 循環(huán)第一次執(zhí)行循環(huán)體是沒有經(jīng)過條件判斷的,也就是說會無條件的執(zhí)行一次循環(huán)體,此后的邏輯

順序就與while循環(huán)相同了——先判斷條件,條件為true再執(zhí)行循環(huán)體一次。請看下面的例子:

C#基礎(chǔ)知識的示例分析

盡管循環(huán)條件始終為 false ,但由于 do...while 循環(huán)第一次執(zhí)行循環(huán)體不判斷條件,所以循環(huán)體還是執(zhí)行了一次。運行結(jié)果為:

C#基礎(chǔ)知識的示例分析

我們已經(jīng)學(xué)習(xí)了C#中最常用的三種循環(huán)結(jié)構(gòu),下面我們小小總結(jié)一下:

C#基礎(chǔ)知識的示例分析

C#循環(huán)結(jié)構(gòu)之continue

循環(huán)中可以應(yīng)用 continue 關(guān)鍵字中止一次循環(huán),直接進入下一次。請看下面的例子:

C#基礎(chǔ)知識的示例分析

當程序執(zhí)行到到 continue; 的時候,會立即停止本次循環(huán)體,直接進入下一次循環(huán)。所以,第三行輸出比其他行少一些:

C#基礎(chǔ)知識的示例分析

所以,可以使用 continue 關(guān)鍵字,在循環(huán)中剔除一些特殊的數(shù)據(jù)。

C#循環(huán)結(jié)構(gòu)之break

前面學(xué)習(xí) switch 結(jié)構(gòu)時,我們曾經(jīng)遇到過 break 關(guān)鍵字, break 在 switch 結(jié)構(gòu)的作用是“跳出 switch 結(jié)構(gòu)”。
break 關(guān)鍵字還可以用在循環(huán)中,作用是“結(jié)束循環(huán)”。下面的循環(huán)代碼中,當 x==3 的時候會執(zhí)行 break :

C#基礎(chǔ)知識的示例分析

運行結(jié)果:

C#基礎(chǔ)知識的示例分析

對比代碼和運行結(jié)果可知,當執(zhí)行到 break ,循環(huán)結(jié)束(盡管此時循環(huán)條件仍然為 true )。

利用 break 關(guān)鍵字和 true 關(guān)鍵字,我們可以用另一種方式編寫循環(huán),下面的代碼是輸出1-5的整數(shù):

C#基礎(chǔ)知識的示例分析

運行結(jié)果:

C#基礎(chǔ)知識的示例分析

C#循環(huán)結(jié)構(gòu)之嵌套循環(huán)

在一個循環(huán)體中包含另一個循環(huán),稱為“嵌套循環(huán)”。當2個循環(huán)嵌套的時候,外層循環(huán)體執(zhí)行一次,內(nèi)層循環(huán)體執(zhí)行 n 次( n 是內(nèi)層循環(huán)的次數(shù))。請看下面的例子:

C#基礎(chǔ)知識的示例分析

運行結(jié)果:

C#基礎(chǔ)知識的示例分析

比較代碼和運行結(jié)果,我們發(fā)現(xiàn),內(nèi)層循環(huán)體執(zhí)行 3 次,外層循環(huán)體執(zhí)行 1 次。這就有點像鐘表上的時針和分針——時針走一格,分針走一圈。

下面一段代碼打印了一個矩形:

C#基礎(chǔ)知識的示例分析

運行效果:

C#基礎(chǔ)知識的示例分析

請思考一下,哪一個變量決定了每一行的循環(huán)次數(shù), x 還是 y ?

C#的聲明數(shù)組和賦值

編程中有這樣一種情形:我們需要存儲多個同類型數(shù)據(jù)。比如,保存 1600 個學(xué)生的年齡。是否需要聲明 1600 個 int 類型的變量?過了一年,學(xué)生們長了 1 歲,是否需要給每個變量重新賦值?這件事情,想想就怕怕。好在C#中有一種數(shù)組,專門存儲一組相同類型的數(shù)據(jù)。數(shù)組的聲明和初始化語法如下:

數(shù)據(jù)類型[ ] 數(shù)組名 = new 數(shù)據(jù)類型[長度]; 

注意:數(shù)組名像變量名一樣要遵循標識符的命名規(guī)則;長度必須是整數(shù)

下面我們來比較變量和數(shù)組的聲明與初始化,右邊是在內(nèi)存中為變量和數(shù)組分配空間的示意:

C#基礎(chǔ)知識的示例分析

對比變量 x 和數(shù)組 y 就會發(fā)現(xiàn),數(shù)組 y 中其實包含了 3 個 double 類型的變量,為什么是 3 個?因為初始化數(shù)組時在 [ ] 中聲明的長度為 3 。既然都在數(shù)組 y 中,所以 3 個變量(應(yīng)該叫數(shù)組元素)的名字都叫 y ,為了區(qū)分它們,按照順序給它們加上索引 [0]、[1]、[2] 。請注意:數(shù)組的索引從 0 開始遞增。那么,數(shù)組 y 中 3 個元素的名字就變成了 y[0]、y[1]、y[2] 。最后再注意一點:數(shù)組經(jīng)過初始化以后,數(shù)組元素有默認的初始值, double 類型為 0.0 , int 類型為 0 , char 類型為 'a' , bool 類型為 false , string 類型為 null 。

數(shù)組元素的賦值與普通變量相同。下面的示例中,我們聲明了一個長度為 3 的 string 類型數(shù)組,逐個賦值,然后打?。?/p>

C#基礎(chǔ)知識的示例分析

上例中,需要注意的是元素的索引,數(shù)組元素索引從 0 開始遞增,所以長度為 3 的數(shù)組,其元素索引為 [0]、[1]、[2] 。

如何知道一個數(shù)組的長度呢? 數(shù)組.Length 屬性會返回數(shù)組的長度(即數(shù)組元素的個數(shù))。請看下面的例子:

C#基礎(chǔ)知識的示例分析

代碼中的 friends.Length 會返回 friends 數(shù)組的長度,請看運行結(jié)果:

C#基礎(chǔ)知識的示例分析

C#訪問數(shù)組元素

上一節(jié)我們學(xué)習(xí)了數(shù)組的聲明和初始化,以及數(shù)組元素的訪問方法。其實,C#中數(shù)組元素有多種初始化方式,請看下例:

C#基礎(chǔ)知識的示例分析

上例中,數(shù)組 a 的初始化方式我們已經(jīng)學(xué)習(xí)過了;數(shù)組 b、c、d 是在初始化時為數(shù)組元素指定初始值,請注意數(shù)組 d 用 [3] 聲明了數(shù)組長度,后面 { } 中的初始值個數(shù)要與 [ ] 中聲明的長度相同。數(shù)組 b、c 初始化沒有聲明長度,長度由 { } 中的初始值個數(shù)確定。

上一節(jié)我們還學(xué)習(xí)了數(shù)組的一個屬性 Length , Length 能夠返回數(shù)組的長度,利用它和數(shù)組元素的索引,我們可以循環(huán)訪問每一元素。上一節(jié)中打印名字的代碼,可以這樣改進:

C#基礎(chǔ)知識的示例分析

Length 屬性返回數(shù)組的長度,如上例中,數(shù)組長度為 3 , Length 就返回 3 ,即循環(huán)變量 i 從 0 循環(huán)到 2 。為什么不循環(huán)到 3 呢?因為數(shù)組元素的索引是從 0 開始的呀!長度為 3 的數(shù)組,索引為 0 - 2 。

通過上例,我們看到,使用數(shù)組就能循環(huán)訪問一組相同類型的變量了,是不是比使用單個變量要輕松呢?

C#的foreach關(guān)鍵字

for 循環(huán)使我們可以通過索引訪問數(shù)組元素;而 foreach 循環(huán)則可以不依賴索引而讀取每一個數(shù)組元素。下面的示例代碼聲明了一個整型數(shù)組,然后通過兩種方法打印數(shù)組元素:

C#基礎(chǔ)知識的示例分析

運行結(jié)果是相同的:

C#基礎(chǔ)知識的示例分析

使用 foreach 的語法:

C#基礎(chǔ)知識的示例分析

需要解釋一下 ④ ,如上面的示例代碼,迭代變量 x 只能用于讀取數(shù)組 num 中的值,但是不能給數(shù)組元素賦值,如果嘗試給 x 賦值,則會有下面的錯誤提示:

C#基礎(chǔ)知識的示例分析

了解了 foreach 循環(huán)的語法,你可能會有疑問:好像 foreach 循環(huán)能做的 for 都能做, foreach 存在的意義是什么呢?其實,C#中還存在一些類似于數(shù)組的數(shù)據(jù)組織方式,它們中有一些是沒有元素索引的,對于這些元素,只能通過 foreach 遍歷。關(guān)于那些更高級的對象,我們留待后面的課程介紹。

C#的二維數(shù)組的聲明和訪問

二維數(shù)組,就是以數(shù)組作為元素的數(shù)組。挺拗口的,看看它跟一維數(shù)組的對比:

C#基礎(chǔ)知識的示例分析

左邊的 a 是一維數(shù)組,數(shù)組中包含 4 個 int 型變量:a[0]、a[1]、a[2]、a[3] 。

右邊的 b 是二維數(shù)組,數(shù)組中包含 2 個 int 型一維數(shù)組:b[0]、b[1] 。而 b[0] 和 b[1] 中又分別包含 3 個 int 型變量:b[0,0]、b[0,1]、b[0,2]、b[1,0]、b[1,1]、b[1,2] 。

總結(jié)一下,二維數(shù)組這樣聲明:

int[,] arr = new int[2,3]; //包含2個一維數(shù)組,每個一維數(shù)組包含3個變量,總共2*3=6個數(shù)組元素

二維數(shù)組元素這樣賦值和打?。?/p>

arr[1,0] = 28; //二維數(shù)組元素有2個索引,都是從0開始,以arr數(shù)組為例,元素索引從[0,0]到[1,2]Console.Write( arr[1,0] );

我們可以用二維數(shù)組管理相關(guān)的數(shù)據(jù),比如有 4 名同學(xué)參加語文和數(shù)學(xué)兩門考試,我們用二維數(shù)組存儲他們的成績,每位同學(xué)的 2 門課分數(shù),存儲在一個一維數(shù)組中:   

C#基礎(chǔ)知識的示例分析

運行結(jié)果如下:

C#基礎(chǔ)知識的示例分析

訪問器

通常C++中會對類中的屬性設(shè)置成private,然后對可以修改的對象單獨寫一個修改值的方法,但C#則大大簡化了這個步驟

這是C++、Java里面沒有的東西。

注意命名規(guī)則 _name  ---->    Name

C#z中:字段是類中原始的成員對象,通常是私有的,屬性是對字段的封裝,通常是公有的

  class Child
    {
        private string _sex;     //隱藏字段

        public string Sex        //公開屬性
        {
            get { return _sex; }    //讀訪問器
            set { _sex = value; }   //寫訪問器
        }

    }

使用:

            Child LaoWang = new Child();
            LaoWang.Sex = "male";
            Console.WriteLine(LaoWang.Sex);

補充:字段封裝的快捷鍵: 光標放在字段內(nèi),CTRL + R + E

對Set訪問器進行檢查:

               public string Sex        //公開屬性
        {
            get
           {
                 return _sex; 
           }    //讀訪問器
            set
           { 
               if(value == "man" && value != "woman")
               {
                   _sex = value; 
               }
           }   //寫訪問器
        }

訪對象初始化器

使用:

Child child = new Child {Name = "小明", Age = 5};

C#中的數(shù)據(jù)類型

值類型: int   char  double   bool ...

值類型變量存儲對象的值,賦值會創(chuàng)建值的副本,修改任何一個副本,都不會影響到其他的副本

引用類型: 類、數(shù)組、接口

C#中的結(jié)構(gòu)體

struct class的區(qū)別:

struct不允許定義無參構(gòu)造函數(shù)

默認訪問限定符不同

struct中可以不實例化而直接訪問成員方法

C#中枚舉

在下面這種情況:

 class Child
    {
        public Child(String sex)
        {
            _sex = sex;
        }

        private String _sex;
        public string Sex
        {
            get
            {
                return _sex;
            }

            set
            {
                if (value == "男" || value == "女")
                {
                    _sex = value;
                }
            }
        }
    }

這樣寫是沒有問題的,將性別限制成了“男”、“女”兩種情況

但如果是星座呢? 星座有12種,難道要全部用if判斷嗎?

這個地方,就可以用枚舉

代碼如下:

enum Constell
    {
        白羊,水瓶,金牛,摩羯
    }

    class Child
    {
        Child(Constell con)
        {
            _con = con;
        }
        private Constell _con;

        internal Constell Con
        {
            get
            {
                return _con;
            }

            set
            {
                _con = value;
            }
        }
    }

C#基礎(chǔ)知識的示例分析

C#中的傳值和傳引用

和C++不同,默認傳遞方式取決于傳遞的參數(shù)是值類型還是引用類型

另外傳遞方式略有差異,需要在調(diào)用處和函數(shù)定義處均聲明,如:

MySwap(ref val1, ref val2);

(個人覺得這樣比C++好用許多)

C#中的out關(guān)鍵字

out用來聲明參數(shù)為輸出型參數(shù)。

同樣,在函數(shù)的定義處和調(diào)用處,都要用out關(guān)鍵字聲明要修飾的變量

感謝你能夠認真閱讀完這篇文章,希望小編分享的“C#基礎(chǔ)知識的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

當前標題:C#基礎(chǔ)知識的示例分析
網(wǎng)站地址:http://jinyejixie.com/article24/peocje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊軟件開發(fā)、網(wǎng)站改版全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
阿合奇县| 香格里拉县| 璧山县| 漯河市| 河曲县| 和田县| 广汉市| 漯河市| 元江| 吕梁市| 罗甸县| 曲麻莱县| 盐边县| 达州市| 华坪县| 巴南区| 曲阜市| 屏南县| 连州市| 大渡口区| 黄陵县| 连山| 本溪市| 本溪市| 大丰市| 怀柔区| 咸宁市| 邵武市| 体育| 鄄城县| 肃北| 蛟河市| 霍林郭勒市| 涞水县| 清丰县| 博白县| 肃宁县| 阳曲县| 临江市| 隆安县| 和平县|