C#學(xué)習(xí)快速入門_第1頁
C#學(xué)習(xí)快速入門_第2頁
C#學(xué)習(xí)快速入門_第3頁
C#學(xué)習(xí)快速入門_第4頁
C#學(xué)習(xí)快速入門_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、C#.NET程序設(shè)計實用教程程序設(shè)計實用教程1第二章第二章C#程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ) 2學(xué)習(xí)目標學(xué)習(xí)目標u掌握掌握C#的基本數(shù)據(jù)類型的基本數(shù)據(jù)類型u掌握掌握C#各種運算符表達式的用法;各種運算符表達式的用法;u理解理解C#控制臺程序的基本結(jié)構(gòu);控制臺程序的基本結(jié)構(gòu);u會使用會使用IF、WHILE、FOR等語句編寫等語句編寫程序;程序;u掌握數(shù)組的使用方法;掌握數(shù)組的使用方法;u了解異常處理方法。了解異常處理方法。3第二章第二章 C#程序設(shè)計基礎(chǔ)程序設(shè)計基礎(chǔ)u2.1 C#基本數(shù)據(jù)類型基本數(shù)據(jù)類型u2.2 常量、變量與表達式常量、變量與表達式u2.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)u2.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u

2、2.5 數(shù)組數(shù)組u2.6 異常處理異常處理4u2.1.1 值類型值類型u2.1.2 引用類型引用類型2.1 C#基本數(shù)據(jù)類型基本數(shù)據(jù)類型52.1 C#基本數(shù)據(jù)類型基本數(shù)據(jù)類型 數(shù)據(jù)類型 值類型 引用類型 簡單類型 結(jié)構(gòu)類型 枚舉類型 整數(shù)類型 字符類型 布爾類型 實數(shù)類型 sbyte byte short ushort int uint long ulong floate double decimal 類 委托 數(shù)組 接口 C#中數(shù)據(jù)類型分類圖中數(shù)據(jù)類型分類圖 62.1.1值類型值類型 值類型的變量內(nèi)含變量值本身,值類型的變量內(nèi)含變量值本身,C#的值類型可以分為的值類型可以分為簡單類型、結(jié)構(gòu)類

3、型和枚舉類型。下面介紹簡單類型。簡單類型、結(jié)構(gòu)類型和枚舉類型。下面介紹簡單類型。 71簡單類型(簡單類型(Simple Type)(1) 整數(shù)類型整數(shù)類型8(2) 實數(shù)類型實數(shù)類型9(3 )字符類型字符類型 例如,可以采用如下方式字符變量賦值:例如,可以采用如下方式字符變量賦值: char c=H ; / 字符字符H char c=x0048; / 字符字符H,十六進制轉(zhuǎn)義符(前綴為,十六進制轉(zhuǎn)義符(前綴為x) char c=u0048; / 字符字符H,Unicode表示形式(前綴為表示形式(前綴為u) char c=r; / 回車,轉(zhuǎn)義字符回車,轉(zhuǎn)義字符 在表示一個字符常數(shù)時,單引號內(nèi)的有

4、效字符數(shù)量必須且只能在表示一個字符常數(shù)時,單引號內(nèi)的有效字符數(shù)量必須且只能是一個,而且不能是單引號或者反斜杠(是一個,而且不能是單引號或者反斜杠()。)。10(4)布爾類型布爾類型 布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的布爾類型數(shù)據(jù)用于表示邏輯真和邏輯假,布爾類型的類型標識符是類型標識符是bool。 11uint age=23ulong number=-33uulong number1=55ufloat score=89.5fudecimal price=123.456muchar answer=yubool isright=true122枚舉類型(枚舉類型(Enum Type)枚舉類

5、型是一種值類型,它用于聲明一組命名的枚舉類型是一種值類型,它用于聲明一組命名的常數(shù)。常數(shù)。(1)枚舉類型的聲明形式:)枚舉類型的聲明形式:訪問修辭符訪問修辭符 enum 枚舉名:基礎(chǔ)類型枚舉名:基礎(chǔ)類型 枚舉成員枚舉成員 注:注:u 基礎(chǔ)類型必須能夠表示該枚舉中定義的所有枚舉數(shù)值?;A(chǔ)類型必須能夠表示該枚舉中定義的所有枚舉數(shù)值。u 枚舉聲明可以顯式地聲明枚舉聲明可以顯式地聲明 byte、sbyte、short、ushort、int、uint、long 或或 ulong 類型作為對應(yīng)的基礎(chǔ)類型。類型作為對應(yīng)的基礎(chǔ)類型。u 沒有顯式地聲明基礎(chǔ)類型的枚舉聲明意味著所對應(yīng)的基礎(chǔ)類型是沒有顯式地聲明基礎(chǔ)

6、類型的枚舉聲明意味著所對應(yīng)的基礎(chǔ)類型是int。13(2)枚舉成員枚舉成員 枚舉成員是該枚舉類型的命名常數(shù)。任意兩個枚枚舉成員是該枚舉類型的命名常數(shù)。任意兩個枚舉成員不能具有相同的名稱。每個枚舉成員均具有相舉成員不能具有相同的名稱。每個枚舉成員均具有相關(guān)聯(lián)的常數(shù)值。此值的類型就是枚舉的基礎(chǔ)類型。每關(guān)聯(lián)的常數(shù)值。此值的類型就是枚舉的基礎(chǔ)類型。每個枚舉成員的常數(shù)值必須在該枚舉的基礎(chǔ)類型的范圍個枚舉成員的常數(shù)值必須在該枚舉的基礎(chǔ)類型的范圍之內(nèi)。之內(nèi)。 示例示例: public enum TimeofDay:uint Morning=-3, Afternoon=-2, Evening=-1 產(chǎn)生編譯時錯

7、誤,原因是常數(shù)值產(chǎn)生編譯時錯誤,原因是常數(shù)值 -1、-2 和和 3 不在基礎(chǔ)整型不在基礎(chǔ)整型 uint 的范圍內(nèi)。的范圍內(nèi)。 14u(3)枚舉成員默認值枚舉成員默認值 在枚舉類型中聲明的第一個枚舉成員它的默值為零。在枚舉類型中聲明的第一個枚舉成員它的默值為零。 以后的枚舉成員值是將前一個枚舉成員(按照文本順以后的枚舉成員值是將前一個枚舉成員(按照文本順序)的值加序)的值加 1 得到的。這樣增加后的值必須在該基礎(chǔ)得到的。這樣增加后的值必須在該基礎(chǔ)類型可表示的值的范圍內(nèi);否則,會出現(xiàn)編譯時錯類型可表示的值的范圍內(nèi);否則,會出現(xiàn)編譯時錯誤。誤。 示例示例: public enum TimeofDay

8、:uint Morning, Afternoon, Evening Morning的值為的值為0,Afternoon的值為的值為1,Evening的值為的值為2。15(4)為枚舉成員顯示賦值為枚舉成員顯示賦值 允許多個枚舉成員有相同的值允許多個枚舉成員有相同的值 沒有顯示賦值的枚舉成員的值,總是前一個枚舉成員沒有顯示賦值的枚舉成員的值,總是前一個枚舉成員的值的值+1. 示例示例 public enum Number a=1, b, c=1, d b的值為的值為2,d的值為的值為2. 注意:以上枚舉值都不能超過它的基礎(chǔ)類型范圍。否則會報錯注意:以上枚舉值都不能超過它的基礎(chǔ)類型范圍。否則會報錯.1

9、6(5)枚舉類型與基礎(chǔ)類型的轉(zhuǎn)換枚舉類型與基礎(chǔ)類型的轉(zhuǎn)換 基礎(chǔ)類型不能隱式轉(zhuǎn)換為枚舉類型基礎(chǔ)類型不能隱式轉(zhuǎn)換為枚舉類型 枚舉類型也不能隱式轉(zhuǎn)換為基礎(chǔ)類型枚舉類型也不能隱式轉(zhuǎn)換為基礎(chǔ)類型示例示例: public enum Number a, b, c, d class Test public static void Main() int i=Number.a; Number n; n=2 /錯誤,要強制類型轉(zhuǎn)換錯誤,要強制類型轉(zhuǎn)換(int)Number.a/錯誤錯誤,要強制類型轉(zhuǎn)換要強制類型轉(zhuǎn)換(Number)217u(6)System.Enum類型類型 System.Enum 類型是所有枚舉類

10、型的抽象基類型是所有枚舉類型的抽象基類類,并且從并且從 System.Enum 繼承的成員在任何枚舉繼承的成員在任何枚舉類型中都可用。類型中都可用。 System.Enum 本身不是枚舉類型。相反,它本身不是枚舉類型。相反,它是一個類類型,所有枚舉類型都是從它派生的。是一個類類型,所有枚舉類型都是從它派生的。 System.Enum 從類型從類型System.ValueType派生派生18u(7)使用枚舉類型示例:使用枚舉類型示例: using System; public enum TimeofDay Morning, Afternoon, Evening 19class Test stat

11、ic void WriteGreeting(TimeofDay timeofDay) switch(timeofDay) case TimeofDay.Morning: Console.WriteLine(good morning); break; case TimeofDay.Afternoon: Console.WriteLine(good afternoon); break; case TimeofDay.Evening: Console.WriteLine(good evening); break; 20u static void Main() WriteGreeting(Timeof

12、Day.Morning); WriteGreeting(TimeofDay.Evening); WriteGreeting(TimeofDay.Afternoon); 213結(jié)構(gòu)類型結(jié)構(gòu)類型結(jié)構(gòu)類型是指把各種不同類型數(shù)據(jù)信息組合在結(jié)構(gòu)類型是指把各種不同類型數(shù)據(jù)信息組合在一起形成的組合類型。一起形成的組合類型。 聲明結(jié)構(gòu)類型的一般語法格式如下:聲明結(jié)構(gòu)類型的一般語法格式如下:struct 標識符標識符 結(jié)構(gòu)成員定義;結(jié)構(gòu)成員定義;22例:例:以下聲明一個具有姓名和年齡的結(jié)構(gòu)體類型以下聲明一個具有姓名和年齡的結(jié)構(gòu)體類型Student:struct Student /定義名為定義名為Student的

13、結(jié)構(gòu)類型的結(jié)構(gòu)類型/定義結(jié)構(gòu)的數(shù)據(jù)成員定義結(jié)構(gòu)的數(shù)據(jù)成員 long no; string name; int age; string university; /定義結(jié)構(gòu)的方法成員定義結(jié)構(gòu)的方法成員 void structmethod( ) /方法可執(zhí)行代碼方法可執(zhí)行代碼 3結(jié)構(gòu)類型結(jié)構(gòu)類型23 聲明一個結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量(簡聲明一個結(jié)構(gòu)類型后,可以定義該結(jié)構(gòu)類型的變量(簡稱為結(jié)構(gòu)變量)。稱為結(jié)構(gòu)變量)。創(chuàng)建結(jié)構(gòu)類型的變量的一般形式如下:創(chuàng)建結(jié)構(gòu)類型的變量的一般形式如下: 結(jié)構(gòu)名結(jié)構(gòu)名 標識符;標識符;如:如:Student s1,s2;說明:結(jié)構(gòu)名為已聲明的結(jié)構(gòu)類型的名稱,標

14、識符必須是說明:結(jié)構(gòu)名為已聲明的結(jié)構(gòu)類型的名稱,標識符必須是C#合法的標識符,它用來表示結(jié)構(gòu)類型的變量。合法的標識符,它用來表示結(jié)構(gòu)類型的變量。 3結(jié)構(gòu)類型結(jié)構(gòu)類型24結(jié)構(gòu)變量的使用結(jié)構(gòu)變量的使用1)訪問結(jié)構(gòu)變量字段)訪問結(jié)構(gòu)變量字段訪問結(jié)構(gòu)變量字段的一般格式如下:訪問結(jié)構(gòu)變量字段的一般格式如下: 結(jié)構(gòu)變量名結(jié)構(gòu)變量名.字段名字段名 例如,例如,s1.no表示結(jié)構(gòu)變量表示結(jié)構(gòu)變量s1的學(xué)號,的學(xué)號,表示結(jié)構(gòu)變表示結(jié)構(gòu)變量量s2的姓名。的姓名。 結(jié)構(gòu)體變量的字段可以在程序中單獨使用,與普通變量完結(jié)構(gòu)體變量的字段可以在程序中單獨使用,與普通變量完全相同。全相同。2)結(jié)構(gòu)變量的賦值)結(jié)

15、構(gòu)變量的賦值 結(jié)構(gòu)變量的賦值有兩種方式。結(jié)構(gòu)變量的賦值有兩種方式。 結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。結(jié)構(gòu)變量的字段賦值:使用方法與普通變量相同。 結(jié)構(gòu)變量之間賦值:要求賦值的兩個結(jié)構(gòu)變量必須類型相結(jié)構(gòu)變量之間賦值:要求賦值的兩個結(jié)構(gòu)變量必須類型相同。例如:同。例如: s1=s2;這樣這樣s2的所有字段值賦給的所有字段值賦給s1的對應(yīng)字段。的對應(yīng)字段。 25u 下面一個簡單示例:下面一個簡單示例:struct IPAddress public byte b1,b2,b3,b4; Class Test IPAddress myIP; myIP.b1=192; myIP.b2=168;

16、myIP.b3=1; myIP.b4=11; Console.Write(“0.1”,myIP.b1, myIP.b2); Console.Write(“0.1”,myIP.b3, myIP.b4);26【例例】 設(shè)計一個控制臺程序說明結(jié)構(gòu)類型的應(yīng)用。設(shè)計一個控制臺程序說明結(jié)構(gòu)類型的應(yīng)用。using System;namespace Proj3_2 class Program struct Student /結(jié)構(gòu)類型聲明應(yīng)放在結(jié)構(gòu)類型聲明應(yīng)放在Main函數(shù)的外面函數(shù)的外面 public int xh; /學(xué)號學(xué)號 public string xm; /姓名姓名 public string xb

17、; /性別性別 public int nl; /年齡年齡 public string bh; /班號班號 27 static void Main(string args) Student s1,s2;/定義兩個結(jié)構(gòu)類型變量定義兩個結(jié)構(gòu)類型變量 s1.xh = 101; s1.xm = 李明李明; s1.xb = 男男; s1.nl = 20; s1.bh = 07001; Console.WriteLine(學(xué)號學(xué)號:0,姓名姓名:1,性別性別:2,年齡年齡:3, 班號班號:4, s1.xh, s1.xm, s1.xb, s1.nl, s1.bh); s2 = s1;/將結(jié)構(gòu)變量將結(jié)構(gòu)變量s1

18、賦給賦給s2 s2.xh = 108; s2.xm = 王華王華; Console.WriteLine(學(xué)號學(xué)號:0,姓名姓名:1,性別性別:2,年齡年齡:3, 班號班號:4, s2.xh, s2.xm, s2.xb, s2.nl, s2.bh); 282.1.2 引用類型引用類型u引用類型是將數(shù)據(jù)保存在堆上的存儲方式。當(dāng)引用類型是將數(shù)據(jù)保存在堆上的存儲方式。當(dāng)將一個數(shù)據(jù)給引用類型時,它被保存在堆上的將一個數(shù)據(jù)給引用類型時,它被保存在堆上的變量中。引用類型的大小不固定,為了可以快變量中。引用類型的大小不固定,為了可以快速地搜索引用類型數(shù)據(jù)的值,通過將其地址保速地搜索引用類型數(shù)據(jù)的值,通過將其地

19、址保存在堆棧上,可以通過地址找到真正數(shù)據(jù)的所存在堆棧上,可以通過地址找到真正數(shù)據(jù)的所在。引用類型很抽象,就像一個門牌號,可以在。引用類型很抽象,就像一個門牌號,可以根據(jù)門牌號找到所在的房子。根據(jù)門牌號找到所在的房子。u引用類型一般包括類、接口、委托和數(shù)組等。引用類型一般包括類、接口、委托和數(shù)組等。29引用類型實例引用類型實例class Study public int x = 15; /類的變量,默認為類的變量,默認為15class Program static void Main(string args) /引用類型的演示引用類型的演示 Study A1 = new Study(); Stu

20、dy A2 = A1; A2.x = 25; /值類型的演示值類型的演示 int B1 = 35; int B2 = B1; B2 = 45; Console.WriteLine(A1.x= + A1.x + ,A2.x= + A2.x); /引用類型結(jié)果引用類型結(jié)果 Console.WriteLine(B1= + B1 + ,B2= + B2); /值類型結(jié)果值類型結(jié)果 Console.Read(); 302.2 常量、變量與表達式常量、變量與表達式u2.2.1 常量常量u2.2.2 變量變量u2.2.3 運算符與表達式運算符與表達式u2.2.4 運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級與結(jié)合性

21、u2.2.5 類型轉(zhuǎn)換類型轉(zhuǎn)換312.2.1 常量常量u常量就是在程序的運行期間其值不會改變的量,常量就是在程序的運行期間其值不會改變的量,通常分為直接常量和符號常量。通常分為直接常量和符號常量。u直接常量直接常量l(1)整型常量l(2)實型常量l(3)字符常量l(4)字符串常量l(5)布爾常量321直接常量直接常量(1)整型常量)整型常量C#語言整型常量的三種表示形式:語言整型常量的三種表示形式: l十進制整數(shù),如十進制整數(shù),如12, -314, 0。 l八進制整數(shù),要求以八進制整數(shù),要求以0開頭,如開頭,如012 l十六進制數(shù),要求十六進制數(shù),要求0 x或或0X開頭,如開頭,如0 x12

22、C#語言的整型常量默認為語言的整型常量默認為int型,如:型,如:int i =3;聲明聲明long型常量可以后加型常量可以后加 l 或或 L ,如:,如:long l = 3L;33(2)實型常量)實型常量C#浮點類型常量有兩種表示形式:浮點類型常量有兩種表示形式:l十進制數(shù)形式:必須含有小數(shù)點,例如:十進制數(shù)形式:必須含有小數(shù)點,例如: 3.14 314.0 .314 l科學(xué)記數(shù)法形式:如:科學(xué)記數(shù)法形式:如: 3.14e2 3.14E2 314E2 C#浮點型常量默認為浮點型常量默認為double型,如要聲明一個型,如要聲明一個常量為常量為float型,則需在數(shù)字后面加型,則需在數(shù)字后面

23、加f或或F,如:,如: double d = 3.14; float f = 3.14f;1直接常量直接常量34(3)字符常量)字符常量u字符常量是用單引號括起來的單個字符,如:字符常量是用單引號括起來的單個字符,如: char c = A;uC#字符采用字符采用Unicode編碼,每個字符占兩個編碼,每個字符占兩個字節(jié),因而可用十六進制編碼形式表示字節(jié),因而可用十六進制編碼形式表示char c1 = u0061;uC#語言中還允許使用轉(zhuǎn)義字符語言中還允許使用轉(zhuǎn)義字符來將其后的來將其后的字符轉(zhuǎn)變?yōu)槠渌暮x字符轉(zhuǎn)變?yōu)槠渌暮xchar c2 = n; /代表換行符代表換行符1直接常量直接常量3

24、51直接常量直接常量36(4)字符串常量)字符串常量 字符串常量是用雙引號括起的零個或多個字符序列。字符串常量是用雙引號括起的零個或多個字符序列。C#支持兩種形式的字符串常量,一種是常規(guī)字符串,另一種是支持兩種形式的字符串常量,一種是常規(guī)字符串,另一種是逐字字符串。逐字字符串。1)常規(guī)字符串。雙引號括起的一串字符,可以包括轉(zhuǎn)義字)常規(guī)字符串。雙引號括起的一串字符,可以包括轉(zhuǎn)義字符。例如符。例如: ”China,Beijingn” “d:myfilef1.txt” / 表示字符串表示字符串d:myfilef1.txt1直接常量直接常量372)逐字字符串。在常規(guī)的字符串前面加一個)逐字字符串。在常

25、規(guī)的字符串前面加一個,就形成,就形成了逐字字符串,它的意思是字符串中的每個字符均表示本了逐字字符串,它的意思是字符串中的每個字符均表示本意,不使用轉(zhuǎn)義字符。如果意,不使用轉(zhuǎn)義字符。如果在字符串中需用到雙引號,則在字符串中需用到雙引號,則可連寫兩個雙引號來表示一個雙引號??蛇B寫兩個雙引號來表示一個雙引號。例如:例如:C:windowsMicrosoft / 與與 C:windowsMicrosoft 含義相同含義相同 He saidHello to me / 與與He saidHello to me 含義相同含義相同38(5)布爾常量)布爾常量uboolean類型適于邏輯運算,一般用于程序流類型

26、適于邏輯運算,一般用于程序流程控制。程控制。uboolean類型數(shù)據(jù)只允許取值類型數(shù)據(jù)只允許取值true或或false,不可以不可以0或非或非0的整數(shù)替代的整數(shù)替代true和和false。 1直接常量直接常量392. 符號常量符號常量u符號常量通常用來保存一個固定值,例如,在符號常量通常用來保存一個固定值,例如,在程序設(shè)計中,圓周率程序設(shè)計中,圓周率“PI”是一個固定的值,那是一個固定的值,那么,在程序開始時,就可以將其定義為一個常么,在程序開始時,就可以將其定義為一個常量。量。u常量的定義語法如下所示,其中,常量的定義語法如下所示,其中,“const”是是定義常量的關(guān)鍵字,同時還要將定義常量

27、的關(guān)鍵字,同時還要將變量名大寫變量名大寫。const 類型名稱類型名稱 常量名常量名 = 常量表達式常量表達式;如:如:const double PI=3.1415926; 402.2.2 變量變量1變量命名規(guī)則變量命名規(guī)則u變量必須以字母(包括漢字)或者變量必須以字母(包括漢字)或者_(下劃線)開頭,(下劃線)開頭,后面跟字母、數(shù)字和下劃線的組合,后面跟字母、數(shù)字和下劃線的組合,不能包含空格、不能包含空格、小數(shù)點以及各種符號。小數(shù)點以及各種符號。u組成變量名的字符數(shù)不要太長,應(yīng)控制在組成變量名的字符數(shù)不要太長,應(yīng)控制在330個字個字符。符。u標識符嚴格區(qū)分大小寫。標識符嚴格區(qū)分大小寫。nam

28、e,Nameu標識符不能與標識符不能與C#關(guān)鍵字名相同。關(guān)鍵字名相同。如:如:int,object等等不能用作變量名。不能用作變量名。除非標識符是以除非標識符是以作為前綴的。作為前綴的。u標識符不能與標識符不能與C#中的類庫名相同中的類庫名相同u變量名在同一范圍內(nèi)必須是唯一的。變量名在同一范圍內(nèi)必須是唯一的。41合法的變量標識符:合法的變量標識符:_namec_sharpvar1var2var2var1非法的標識符:非法的標識符:1var c_# var2 var1 以數(shù)字以數(shù)字1開頭開頭 包括了字母、數(shù)字和下劃線以外的字符包括了字母、數(shù)字和下劃線以外的字符# 包括了字母、數(shù)字和下劃包括了字母

29、、數(shù)字和下劃線以外的字符(空格)線以外的字符(空格) 42u在在C#程序里使用某個變量之前,必須要告訴程序里使用某個變量之前,必須要告訴編譯器它是一個什么樣的變量,因此要對變量編譯器它是一個什么樣的變量,因此要對變量進行定義。進行定義。u在在C#中聲明變量使用下述語法:中聲明變量使用下述語法: 類型類型 標識符標識符;n例如:int a,b,c; 注意:注意:C#編譯器需要用某個初始值對變量進行編譯器需要用某個初始值對變量進行初始化,之后才能在操作中引用該變量初始化,之后才能在操作中引用該變量 。如果。如果檢測到局部變量在初始化之前就使用了它的值,檢測到局部變量在初始化之前就使用了它的值,就會

30、產(chǎn)生錯誤。就會產(chǎn)生錯誤。2.2.2 變量變量432.變量的初始化變量的初始化例如:例如: float f11.25, f23.6, f3;C#有兩種方法可確保變量在使用前進行了初始化:有兩種方法可確保變量在使用前進行了初始化:(1)變量是類或結(jié)構(gòu)中的字段,如果沒有顯示初始化,)變量是類或結(jié)構(gòu)中的字段,如果沒有顯示初始化,在默認狀態(tài)下創(chuàng)建這些變量時,其值是在默認狀態(tài)下創(chuàng)建這些變量時,其值是0.(2)方法的局部變量必須在代碼中顯示初始化之后才能)方法的局部變量必須在代碼中顯示初始化之后才能在語句中使用它們的值。在語句中使用它們的值。443.變量的作用域變量的作用域u只要字段所屬的類在某個作用域內(nèi),

31、其字段也在該作只要字段所屬的類在某個作用域內(nèi),其字段也在該作用域內(nèi)。用域內(nèi)。u局部變量存在于表示聲明該變量的塊語句或方法結(jié)束局部變量存在于表示聲明該變量的塊語句或方法結(jié)束的封閉花括號之前的作用域內(nèi)。的封閉花括號之前的作用域內(nèi)。u在在for,while或類似語句中聲明的局部變量存在于該或類似語句中聲明的局部變量存在于該循環(huán)體內(nèi)。循環(huán)體內(nèi)。(1)局部變量的作用域沖突。)局部變量的作用域沖突。同名的局部變量不能在同一作用域內(nèi)聲明兩次。同名的局部變量不能在同一作用域內(nèi)聲明兩次。int x=20;int x=30;45正確的局部變量作用域正確的局部變量作用域u class Programu u publ

32、ic static int Main()u u for (int i = 0; i = 0; i-)u u Console.Write(i);u u Console.ReadKey();u return 0;u u u 46錯誤的變量作用域聲明錯誤的變量作用域聲明upublic static int Main()u u int j = 20;u for (int i = 0; i 10; i+)u u int j = 30;u Console.Writeline(j+i);u u 47(2)字段和局部變量的作用域沖突)字段和局部變量的作用域沖突 把聲明為類級的變量看做字段,把在方法中聲把聲明為

33、類級的變量看做字段,把在方法中聲明的變量看做局部變量。明的變量看做局部變量。namespace test class VarTest static int j = 20; public static void Main() int j = 30; Console.Writeline(j); 48u運算符運算符1 算術(shù)運算符算術(shù)運算符2 字符串運算符字符串運算符3 賦值運算符賦值運算符4 邏輯運算符邏輯運算符5 位運算符位運算符6 條件賦值運算符條件賦值運算符2.2.3 運算符與表達式運算符與表達式491 算術(shù)運算符算術(shù)運算符u算術(shù)運算符算術(shù)運算符: +,*,/,%,+,-l有關(guān)有關(guān) /: 15

34、/4 15/3 15/2 15.0/2l有關(guān)有關(guān) %:第一個數(shù)為:第一個數(shù)為0或或0.0 且第二個數(shù)不為零時,則且第二個數(shù)不為零時,則結(jié)果為結(jié)果為0或或0.0;若;若%的兩側(cè)有負數(shù),則運算結(jié)果取決的兩側(cè)有負數(shù),則運算結(jié)果取決于第一個數(shù);于第一個數(shù);l例如:例如:100%3 100%-3 -100%-3 -100%3l有關(guān)有關(guān)%的含義:的含義: 偶數(shù)偶數(shù) a %2, 整除整除 a%7(如:(如:1001000的自的自然數(shù)中能夠被然數(shù)中能夠被7整除的數(shù))整除的數(shù)), 個位個位 a%10l有關(guān)有關(guān)+, -: a=5; a+; b=a*2 a=5; b = + a *2; a=5; b = a+ *2

35、;502 字符串運算符字符串運算符l+ 除用于算術(shù)加法運算外,還可用于除用于算術(shù)加法運算外,還可用于對字符串進行連接操作對字符串進行連接操作int i = 300 +5;string s = hello, + world!;l+運算符兩側(cè)的操作數(shù)中只要有一個是運算符兩側(cè)的操作數(shù)中只要有一個是字符串字符串(String)類型,系統(tǒng)會自動將另類型,系統(tǒng)會自動將另一個操作數(shù)轉(zhuǎn)換為字符串然后再進行連接一個操作數(shù)轉(zhuǎn)換為字符串然后再進行連接string s = hello, +300 + 5 + 號號;/輸出:輸出:hello, 3005號號513 賦值運算符賦值運算符u賦值運算符就是常見的賦值運算符就是

36、常見的“=”,它可以為數(shù)值型、,它可以為數(shù)值型、枚舉、類等所有的類型賦值。使用枚舉、類等所有的類型賦值。使用“=”的語法的語法如下所示:如下所示:u變量變量 = 值;值;u其中,其中,“=”左邊一般為變量的名稱,左邊一般為變量的名稱,“=”右邊右邊為固定的值、已經(jīng)知道的變量或新實例化的類。為固定的值、已經(jīng)知道的變量或新實例化的類。52一般二元運算符都可以和賦值運算符在一起構(gòu)成復(fù)合賦值運算,如表所示。534關(guān)系運算符與關(guān)系表達式關(guān)系運算符與關(guān)系表達式545邏輯運算符邏輯運算符u與:與:C#中的符號為中的符號為“&”,表示必須滿足兩個條,表示必須滿足兩個條件。語法為件。語法為“表達式表達式1 &

37、表達式表達式2”。u或:或:C#中的符號為中的符號為“|”,表示滿足兩個條件中,表示滿足兩個條件中的任意一個即可。語法為的任意一個即可。語法為“表達式表達式1 | 表達式表達式2”。u非:非:C#中的符號為中的符號為“!”。表示取當(dāng)前表達式結(jié)果。表示取當(dāng)前表達式結(jié)果的相反結(jié)果。如果當(dāng)前表達式為的相反結(jié)果。如果當(dāng)前表達式為“true”,則計算,則計算結(jié)果為結(jié)果為“false”。語法為。語法為“! 表達式表達式”。556位運算符位運算符u& 按位與:將兩個值的二進制進行與操作。只按位與:將兩個值的二進制進行與操作。只有兩個二進位均為有兩個二進位均為1時,結(jié)果位才為時,結(jié)果位才為1,否則為,否則為0

38、u|按位或:將兩個值的二進制進行或操作。只按位或:將兩個值的二進制進行或操作。只要兩個二進制位中有一個為要兩個二進制位中有一個為1,結(jié)果位就等于,結(jié)果位就等于1,否則為否則為0u按位異或按位異或u取反取反u 右移:將變量的二進制位往右移動右移:將變量的二進制位往右移動56577條件賦值運算符及表達式條件賦值運算符及表達式u條件運算符由符號條件運算符由符號“?”與與“:”組成,通過操作三組成,通過操作三個操作數(shù)完成運算,其一般格式為:個操作數(shù)完成運算,其一般格式為:邏輯表達式邏輯表達式 ? 表達式表達式1:表達式:表達式2u在條件賦值表達式在運算時,首先運算在條件賦值表達式在運算時,首先運算“邏

39、輯邏輯表達式表達式”的值,如果為的值,如果為true,則運算結(jié)果為,則運算結(jié)果為“表達式表達式1”的值,否則運算結(jié)果為的值,否則運算結(jié)果為“表達式表達式2”的值。的值。如:條件表達式如:條件表達式43?1:2的值為的值為1; 條件表達式條件表達式34?1:2的值為的值為2。58上面運算符的優(yōu)先級最高,下面的最低;同一行運算上面運算符的優(yōu)先級最高,下面的最低;同一行運算符的優(yōu)先級相同,在實際表達式中這些運算符的優(yōu)先級符的優(yōu)先級相同,在實際表達式中這些運算符的優(yōu)先級由結(jié)合性原則來決定由結(jié)合性原則來決定2.2.4 運算符的優(yōu)先級運算符的優(yōu)先級59運算符的優(yōu)先級是指在表達式中哪一個運算符應(yīng)該首先計運算

40、符的優(yōu)先級是指在表達式中哪一個運算符應(yīng)該首先計算。算。 C#根據(jù)運算符的優(yōu)先級確定表達式的求值順序:優(yōu)先級根據(jù)運算符的優(yōu)先級確定表達式的求值順序:優(yōu)先級高的運算先做,優(yōu)先級低的操作后做,相同優(yōu)先級的操作高的運算先做,優(yōu)先級低的操作后做,相同優(yōu)先級的操作從左到右依次做,同時用從左到右依次做,同時用小括號小括號控制運算順序,任何在小控制運算順序,任何在小括號內(nèi)的運算最優(yōu)先進行。括號內(nèi)的運算最優(yōu)先進行。 60 數(shù)據(jù)類型在一定條件下是可以相互轉(zhuǎn)換的,如將數(shù)據(jù)類型在一定條件下是可以相互轉(zhuǎn)換的,如將int型數(shù)據(jù)型數(shù)據(jù)轉(zhuǎn)換成轉(zhuǎn)換成double型數(shù)據(jù)。型數(shù)據(jù)。C#允許使用兩種轉(zhuǎn)換的方式:隱式轉(zhuǎn)換允許使用兩種轉(zhuǎn)

41、換的方式:隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。和顯式轉(zhuǎn)換。1. 隱式轉(zhuǎn)換隱式轉(zhuǎn)換 隱式轉(zhuǎn)換是系統(tǒng)默認的、不需要加以聲明就可以進行的轉(zhuǎn)換。隱式轉(zhuǎn)換是系統(tǒng)默認的、不需要加以聲明就可以進行的轉(zhuǎn)換。2.2.5 類型轉(zhuǎn)換類型轉(zhuǎn)換61u隱式轉(zhuǎn)換通常運用在以下三種情況:隱式轉(zhuǎn)換通常運用在以下三種情況:u(1)對于同一種類型,小范圍類型到大范圍)對于同一種類型,小范圍類型到大范圍類型的轉(zhuǎn)換類型的轉(zhuǎn)換nsbyte sbn = 123; short shn = sbn; u(2)無符號整型到有符號整型的轉(zhuǎn)換)無符號整型到有符號整型的轉(zhuǎn)換nuint un = 123; long ln = un; u(3)整型(包括有符號整型和無符

42、號整型)整型(包括有符號整型和無符號整型)到浮點型的轉(zhuǎn)換到浮點型的轉(zhuǎn)換nint n = 123; float f = n; 622. 顯式轉(zhuǎn)換顯式轉(zhuǎn)換 顯式轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換顯式轉(zhuǎn)換又叫強制類型轉(zhuǎn)換,與隱式轉(zhuǎn)換相反,顯式轉(zhuǎn)換需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式需要用戶明確地指定轉(zhuǎn)換類型,一般在不存在該類型的隱式轉(zhuǎn)換時才使用。格式如下:轉(zhuǎn)換時才使用。格式如下: (類型標識符類型標識符)表達式表達式 其作用是將其作用是將“表達式表達式”值的類型轉(zhuǎn)換為值的類型轉(zhuǎn)換為“類型標識符類型標識符”的的類型。例如:類型。例如: (int)1.23 /把把double

43、類型的類型的1.23轉(zhuǎn)換成轉(zhuǎn)換成int類型,結(jié)果為類型,結(jié)果為1 需要提醒注意以下幾點:需要提醒注意以下幾點: (1)顯式轉(zhuǎn)換可能會導(dǎo)致錯誤。進行這種轉(zhuǎn)換時編譯器將)顯式轉(zhuǎn)換可能會導(dǎo)致錯誤。進行這種轉(zhuǎn)換時編譯器將對轉(zhuǎn)換進行溢出檢測。如果有溢出說明轉(zhuǎn)換失敗,就表明源對轉(zhuǎn)換進行溢出檢測。如果有溢出說明轉(zhuǎn)換失敗,就表明源類型不是一個合法的目標類型,轉(zhuǎn)換就無法進行。類型不是一個合法的目標類型,轉(zhuǎn)換就無法進行。 (2)對于從)對于從float、double、decimal到整型數(shù)據(jù)的轉(zhuǎn)換,將到整型數(shù)據(jù)的轉(zhuǎn)換,將通過舍入得到最接近的整型值,如果這個整型值超出目標類通過舍入得到最接近的整型值,如果這個整型值

44、超出目標類型的范圍,則出現(xiàn)轉(zhuǎn)換異常。型的范圍,則出現(xiàn)轉(zhuǎn)換異常。 63【例例】 設(shè)計一個控制臺程序說明類型轉(zhuǎn)換的應(yīng)用。設(shè)計一個控制臺程序說明類型轉(zhuǎn)換的應(yīng)用。using System;namespace Proj3_1 class Program static void Main(string args) int i=65,i1,i2; double d = 66.3456,d1,d2; char c = A,c1,c2; Console.WriteLine(i=0:d5,d=1:f,c=2, i, d, c); i1 = (int)d; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 d1 = i;/隱式類型轉(zhuǎn)換隱

45、式類型轉(zhuǎn)換 c1 = (char)i; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 Console.WriteLine(i1=0:d5,d1=1:f,c1=2, i1, d1, c1); i2 = c; /隱式類型轉(zhuǎn)換隱式類型轉(zhuǎn)換 d2 = (int)d; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換,轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為轉(zhuǎn)換成整數(shù)后再隱式轉(zhuǎn)為double類型類型 c2 = (char)d; /強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換 Console.WriteLine(i2=0:d5,d2=1:f,c2=2, i2, d2, c2); 64u 格式項都采用如下形式:u index,alignment:formatString u u 其中

46、index指索引占位符,這個肯定都知道;u ,alignment按字面意思顯然是對齊方式,以,為標記;u :formatString就是對輸出格式的限定,以:為標記。u u alignment:可選,是一個帶符號的整數(shù),指示首選的格式化字段寬度。如果“對齊”值小于格式化字符串的長度,“對齊”會被忽略,并且使用格式化字符串的長度作為字段寬度。如果“對齊”為正數(shù),字段的格式化數(shù)據(jù)為右對齊;如果“對齊”為負數(shù),字段的格式化數(shù)據(jù)為左對齊。如果需要填充,則使用空白。如果指定“對齊”,就需要使用逗號。u u formatString:由標準或自定義格式說明符組成.u 65類型轉(zhuǎn)換(續(xù))類型轉(zhuǎn)換(續(xù))數(shù)值類

47、型數(shù)據(jù)和字符串類型數(shù)據(jù)之間的轉(zhuǎn)換數(shù)值類型數(shù)據(jù)和字符串類型數(shù)據(jù)之間的轉(zhuǎn)換l字符串類型數(shù)據(jù)字符串類型數(shù)據(jù)數(shù)值類型數(shù)據(jù)數(shù)值類型數(shù)據(jù) int n; float x;n = int.Parse(123); /字符串字符串123轉(zhuǎn)化為整數(shù)轉(zhuǎn)化為整數(shù)123x = float.Parse(“5.345678”); /字符串字符串“5.345678”轉(zhuǎn)化為單轉(zhuǎn)化為單 精度浮點數(shù)精度浮點數(shù)5.345678n = Convert.ToInt16(“123”); /字符串字符串“123”轉(zhuǎn)化為整數(shù)轉(zhuǎn)化為整數(shù) 123l數(shù)值類型數(shù)據(jù)數(shù)值類型數(shù)據(jù)字符串類型數(shù)據(jù)字符串類型數(shù)據(jù) int n=123; string s1;s1

48、= n.ToString(); /將整數(shù)將整數(shù)123轉(zhuǎn)化為字符串轉(zhuǎn)化為字符串12366裝箱和拆箱裝箱和拆箱 1. 裝箱轉(zhuǎn)換裝箱轉(zhuǎn)換裝箱轉(zhuǎn)換是指將一個值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個引用裝箱轉(zhuǎn)換是指將一個值類型的數(shù)據(jù)隱式地轉(zhuǎn)換成一個引用類型的數(shù)據(jù)。例如,下面語句就執(zhí)行了裝箱轉(zhuǎn)換:類型的數(shù)據(jù)。例如,下面語句就執(zhí)行了裝箱轉(zhuǎn)換:int i=8;object obj=i;或或object obj=(object)i;2. 拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換拆箱轉(zhuǎn)換是指將一個引用類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個拆箱轉(zhuǎn)換是指將一個引用類型的數(shù)據(jù)顯式地轉(zhuǎn)換成一個值類型數(shù)據(jù)。例如,下面語句就執(zhí)行了拆箱轉(zhuǎn)換:值類型數(shù)據(jù)。例如,下面語句就執(zhí)行

49、了拆箱轉(zhuǎn)換:object obj=2;int i=(int)obj;拆箱轉(zhuǎn)換需要(而且必須)執(zhí)行顯式轉(zhuǎn)換,這是它與裝箱拆箱轉(zhuǎn)換需要(而且必須)執(zhí)行顯式轉(zhuǎn)換,這是它與裝箱轉(zhuǎn)換的不同之處。轉(zhuǎn)換的不同之處。67u注意:注意:當(dāng)一個當(dāng)一個“裝箱裝箱”操作把值類型轉(zhuǎn)換為一個操作把值類型轉(zhuǎn)換為一個引用類型時,不需要顯式地強制類型轉(zhuǎn)換;引用類型時,不需要顯式地強制類型轉(zhuǎn)換;u而拆箱操作把引用類型轉(zhuǎn)換到值類型時,由于而拆箱操作把引用類型轉(zhuǎn)換到值類型時,由于它可以強制轉(zhuǎn)換到任何可以相容的值類型,所它可以強制轉(zhuǎn)換到任何可以相容的值類型,所以必須顯式地強制類型轉(zhuǎn)換。以必須顯式地強制類型轉(zhuǎn)換。683. C#用戶自定義

50、類型轉(zhuǎn)換用戶自定義類型轉(zhuǎn)換u public static implicit operator string(someStringClass s)u u .u uu 用戶自定義轉(zhuǎn)換用戶自定義轉(zhuǎn)換 所有的用戶自定義轉(zhuǎn)換都是靜態(tài)的,要使用所有的用戶自定義轉(zhuǎn)換都是靜態(tài)的,要使用static關(guān)鍵字關(guān)鍵字 用戶自定義轉(zhuǎn)換分顯示和隱示,它們用用戶自定義轉(zhuǎn)換分顯示和隱示,它們用implicit(隱式轉(zhuǎn)換)(隱式轉(zhuǎn)換)或或 explicit(顯示轉(zhuǎn)換)關(guān)鍵字聲明。(顯示轉(zhuǎn)換)關(guān)鍵字聲明。 static 訪問修辭符訪問修辭符 轉(zhuǎn)換修辭符轉(zhuǎn)換修辭符 operator 轉(zhuǎn)換類型轉(zhuǎn)換類型(參數(shù)參數(shù))69u示例示例:us

51、ing System;struct Number private int value; public Number(int value) this.value = value; /用戶自定義整型到用戶自定義整型到Number型的隱式轉(zhuǎn)換型的隱式轉(zhuǎn)換 static public implicit operator Number(int value) return new Number(value); / 用戶自定義從用戶自定義從Number型到整型的顯示轉(zhuǎn)換型到整型的顯示轉(zhuǎn)換 static public explicit operator int(Number n) return n.value

52、; /用戶自定義從用戶自定義從Number類型到類型到string類型的隱式轉(zhuǎn)換類型的隱式轉(zhuǎn)換 static public implicit operator string(Number n) return n.ToString(); uclass Test static public void Main() Number n; n= 10; Console.WriteLine(int)n); /隱式轉(zhuǎn)換到隱式轉(zhuǎn)換到string Console.WriteLine(n); 702.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)u 2.3.1 if語句語句l1 、單分支、單分支if語句語句l2、雙分支、雙分支ifelse

53、語句語句l3、多分支、多分支if語句語句u 2.3.2 switch語句語句712.3.1 if語句語句1、單分支、單分支if語句語句語法形式如下:語法形式如下:if (表達式表達式) 語句;語句;說明:如果表達式的值為說明:如果表達式的值為true(即條件成立即條件成立),則,則執(zhí)行后面執(zhí)行后面if語句所控制的語句塊;否則什么都語句所控制的語句塊;否則什么都不執(zhí)行。不執(zhí)行。72u2、雙分支、雙分支ifelse語句語句語法如下:語法如下:if (表達式表達式) 語句塊語句塊1; else 語句塊語句塊2; 說明:如果表達式的值為說明:如果表達式的值為true(即條件成立即條件成立),則執(zhí)行后,

54、則執(zhí)行后面面if語句所控制的語句塊語句所控制的語句塊1;如果表達式的值為;如果表達式的值為false(即條件不成立即條件不成立),則執(zhí)行,則執(zhí)行else語句所控制的語語句所控制的語句塊句塊2;然后再執(zhí)行下一條語句。;然后再執(zhí)行下一條語句。2.3.1 if語句語句733、多分支、多分支if語句語句在在ifelse語句中可以嵌套使用多層語句中可以嵌套使用多層ifelse語句,如:語句,如:if (表達式表達式1) if(表達式表達式2) if(表達式表達式3) 語句語句1; else 語句語句2; else 語句語句3; else 語句語句4;2.3.1 if語句語句74例:首先輸入一個成績,然后

55、判斷該成績是優(yōu)、良、中、及格還是不及格。例:首先輸入一個成績,然后判斷該成績是優(yōu)、良、中、及格還是不及格。class Test static void Main( ) Console.Write(請輸入考試成績請輸入考試成績: );double score=double.Parse(Console.ReadLine( ); if (score = 90) Console.WriteLine(成績?yōu)閮?yōu)成績?yōu)閮?yōu)); else if (score = 80) Console.WriteLine(成績?yōu)榱汲煽優(yōu)榱?; else if (score = 70) Console.WriteLine(成績?yōu)?/p>

56、中成績?yōu)橹?; else if (score = 60) Console.WriteLine(成績?yōu)榧案癯煽優(yōu)榧案?; else Console.WriteLine(成績?yōu)椴患案癯煽優(yōu)椴患案?; 2.3.1 if語句語句752.3.2 switch語句語句u switch語句的一般格式如下:語句的一般格式如下:switch (表達式表達式) case 常量表達式常量表達式1: 語句語句1; break; case 常量表達式常量表達式2: 語句語句2; break; case 常量表達式常量表達式n: 語句語句n; break; default: 語句語句n+1; break;76u說明:說明

57、:switch語句也是一個多條件判斷語句,當(dāng)代碼語句也是一個多條件判斷語句,當(dāng)代碼執(zhí)行到此語句時,根據(jù)執(zhí)行到此語句時,根據(jù)“case”語句的條件,語句的條件,逐個判斷變量的值,滿足條件的,則進入相對逐個判斷變量的值,滿足條件的,則進入相對應(yīng)的應(yīng)的“case”代碼段,如果不滿足任何代碼段,如果不滿足任何“case”條件,則進入條件,則進入“default”語句,執(zhí)行默認代碼語句,執(zhí)行默認代碼段。段。switch語句的語法如下所示,其中,每語句的語法如下所示,其中,每個個“case”代碼段內(nèi)都必須帶有一個代碼段內(nèi)都必須帶有一個“break;”語句,用來從當(dāng)前分支條件中跳出。語句,用來從當(dāng)前分支條件

58、中跳出。2.3.2 switch語句語句772.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)u2.4.1 while語句語句u2.4.2 do-while語句語句u2.4.3 for語句語句u2.4.4 foreach語句語句u2.4.5 跳轉(zhuǎn)語句跳轉(zhuǎn)語句782.4.1 while語句語句uwhile語句的語法如下:語句的語法如下: while (條件條件) 循環(huán)體語句;循環(huán)體語句; 792.4.1 while語句語句u下面的實例用下面的實例用whlie語句實現(xiàn)輸出語句實現(xiàn)輸出0到到99。class WhileClass static void Main() int i = 0; while (i 100) Cons

59、ole.WriteLine(i); i+; Console.Read(); 802.4.2 do-while語句語句u一般形式:一般形式: do 循環(huán)體語句;循環(huán)體語句; while (表達式表達式); 81u注意注意while語句與語句與do-while語句的區(qū)別:語句的區(qū)別:uwhile語句是語句是“先判斷再執(zhí)行先判斷再執(zhí)行”,do-while語語句是句是“先執(zhí)行后判斷先執(zhí)行后判斷”。do-while循環(huán)體里的循環(huán)體里的語句,至少執(zhí)行一次;語句,至少執(zhí)行一次;while語句循環(huán)體里的語句循環(huán)體里的語句可能一次都不執(zhí)行。語句可能一次都不執(zhí)行。 2.4.2 do-while語句語句822.4.3 for語句語句ufor語句的使用語法如下所示。語句的使用語法如下所示。for(表達式表達式1;表達式;表達式2;表達式;表達式3) 循環(huán)體語句;循環(huán)體語句; 83for語句的執(zhí)行過程為:語句的執(zhí)行過程為:(1)首先計算表達式)首先計算表達式1的值。的值。(2)判斷表達式)判斷表達式2的值是的值是true還是還是false,若表,若表達式達式2的值為的值為false,則轉(zhuǎn)而執(zhí)行步驟(,則轉(zhuǎn)而執(zhí)行步驟(4););若表達式若表達式2的值是的值是true,則執(zhí)行循環(huán)體中的語,則執(zhí)行循環(huán)體中的語句,然后求表達式句,然后求表達式3的值。的值。(3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論