版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 常量 枚舉 結(jié)構(gòu)數(shù)組方法函數(shù)(函數(shù)的參數(shù))4.1 常量4.2 枚舉(字符串與枚舉的轉(zhuǎn)換)4.3 結(jié)構(gòu)4.4 數(shù)組(冒泡排序)4.5 方法(函數(shù)及參數(shù))4.6 方法的重載4.7 ref 與 out 參數(shù)1.常量取值不可改變的變量,只在初始化時(shí)可賦值,用const修飾。const 類型類型 常量名常量名 = 常量值常量值 static void Main(string args) const double PI = 3.14; PI = 3.20;2.枚舉o定義了一種類型,并指定這種類型所可能的值。o語(yǔ)法:enum 自己的枚舉類型值1,值2,o一般和類定義在同一級(jí)別。o每個(gè)值都有一個(gè)默認(rèn)編
2、號(hào),從0開(kāi)始。o枚舉的用法:nQQStatus status = QQStatus.online;n和用字符串比起來(lái),用枚舉的好處就是限定了變量的取值范圍,程序處理起來(lái)更方便。enum Gendermale,femaleenum QQStatusonline,offline,hiddennamespace myfirst enum GENDER 男, 女 class Program static void Main(string args) GENDER sex; sex = GENDER.男; Console.WriteLine(sex); Console.WriteLine(int)sex
3、); Console.ReadKey(); 舉例:MessageBox.Show(aaaaa, bbbb, MessageBoxButtons.RetryCancel);F12轉(zhuǎn)定義進(jìn)行枚舉查看 / 消息框包含“確定”按鈕。 OK = 0, / 消息框包含“確定”和“取消”按鈕。 OKCancel = 1, / 消息框包含“中止”、“重試”和“忽略”按鈕。 AbortRetryIgnore = 2, / 消息框包含“是”、“否”和“取消”按鈕。 YesNoCancel = 3,字符串與枚舉的轉(zhuǎn)換public enum Gender male, famale/Console.WriteLine(
4、你的性別你的性別:0.,Gender.male.ToString();/字符串轉(zhuǎn)換為枚舉字符串轉(zhuǎn)換為枚舉(Gender)(Enum.Parse( typeof(Gender),“male”); l枚舉一般和類定義在同一個(gè)級(jí)別(值不需加雙引號(hào),不可以是int類型,但可以強(qiáng)制轉(zhuǎn)換為int)l每一個(gè)值都對(duì)應(yīng)一個(gè)數(shù)字(編號(hào)從0開(kāi)始)l典型的枚舉類型:MessageBox.Show的參數(shù)(后面會(huì)學(xué)到)namespace myfirst enum GENDER 男 = 3, 女 = 6 class Program static void Main(string args) GENDER sex; stri
5、ng s = Console.ReadLine(); try sex = (GENDER)(Enum.Parse(typeof(GENDER), s); Console.WriteLine(鍵盤輸入為:0, sex); catch Console.WriteLine(輸入錯(cuò)誤!); Console.ReadKey(); 3.結(jié)構(gòu)體o 為什么要使用結(jié)構(gòu)?n存儲(chǔ)一個(gè)人的信息,可聲明一組變量,若要存儲(chǔ)多個(gè)人呢?o 例如c#中Color Point都是結(jié)構(gòu)訪問(wèn)修飾符訪問(wèn)修飾符 struct 結(jié)構(gòu)名結(jié)構(gòu)名 定義結(jié)構(gòu)成員定義結(jié)構(gòu)成員public struct Person public string Na
6、me; public int Age; public string Hobby; public int Popularity; public void SayHi() / . 練習(xí):o 定義一個(gè)結(jié)構(gòu)類型Person,有三個(gè)成員,分別為姓名,性別,年齡n 聲明兩個(gè)Person類型的變量,分別表示 張三 男 18歲/ 小蘭 女 16歲namespace myfirst enum GENDER 男 = 3, 女 = 6 public struct Person public string Name; public GENDER sex; public int Age; class Program s
7、tatic void Main(string args) Person p1, p2, p3; p1.Age = 10; p2.Name = 小李; p3.sex = GENDER.男; 4.數(shù)組o 統(tǒng)計(jì)每個(gè)學(xué)生的成績(jī),并計(jì)算全班的平均成績(jī),然后顯示所有成績(jī)。o 如何聲明變量?o 好的解決方法,使用數(shù)組。數(shù)組o保存多個(gè)值。幾乎任意類型都可以聲明數(shù)組。int nums = 5,3,8;int nums = new int3;int nums = new int35,3,8 /個(gè)數(shù)和聲明數(shù)必須一致int nums = new int55,3,8 /錯(cuò)誤int nums = new int5,3,8
8、 /正確,可以省略數(shù)組個(gè)字使用索引器訪問(wèn)指定編號(hào)位置的元素,訪問(wèn)數(shù)組元素:nums0、nums1。索引從0開(kāi)始。l數(shù)組的聲明l數(shù)組的賦值與取值l常見(jiàn)問(wèn)題:求平均值,求最大值,求和,排序(冒泡排序)namespace myfirst public struct Person public string Name; public int Age; class Program static void Main(string args) Person P_all=new Person20; P_all12.Age = 18; Console.WriteLine(P_all.Length); for (
9、int i = 0; i P_all.Length;i+ ) Console.WriteLine(Person0=1,i,P_alli.Age); Console.ReadKey(); 遍歷數(shù)組常用的兩種方法: int arr = new int8 1,2,3,4,5,6,7,8; foreach (int i in arr) Console.WriteLine(i); for (int i = 0; i arr.Length;i+ )Console.WriteLine(arr0=1,i,arri);Console.ReadKey();練習(xí):練習(xí)1:從一個(gè)整數(shù)數(shù)組中取出最大的整數(shù)練習(xí)2:計(jì)算一
10、個(gè)整數(shù)數(shù)組的所有元素的和。練習(xí)3:將一個(gè)字符串?dāng)?shù)組輸出為|分割的形式,比如“梅西|卡卡|鄭大世”練習(xí)4:將一個(gè)整數(shù)數(shù)組的每一個(gè)元素進(jìn)行如下的處理:如果元素是正數(shù)則將這個(gè)位置的元素的值加1,如果元素是負(fù)數(shù)則將這個(gè)位置的元素的值減1,如果元素是0,則不變。練習(xí)5:將一個(gè)字符串?dāng)?shù)組的元素的順序進(jìn)行反轉(zhuǎn)?!?”,“a”,“8”,“haha” “haha”,“8”,“a”,“3”。第i個(gè)和第length-i-1個(gè)進(jìn)行交換。求平均值,求最大值,求和實(shí)驗(yàn):冒泡排序法 int i, j, temp; int a = 22, 44, 12, 4, 234, 54, 65, 34 ; for (i = 0; i
11、a.Length - 1; i+) for (j = 0; j aj + 1) temp = aj; aj = aj + 1; aj + 1 = temp; for (i = 0; i a.Length; i+) Console.WriteLine(ai); Console.ReadKey();try-catch的使用(簡(jiǎn)單用法)try有可能出現(xiàn)錯(cuò)誤的代碼;catch如果try中的代碼出現(xiàn)異常,則進(jìn)去catch中5.方法(函數(shù))介紹o函數(shù)就是將一堆代碼進(jìn)行重用的一種機(jī)制。函數(shù)是一段代碼,這段代碼可能有輸入的值(參數(shù)),可能會(huì)返回值。一個(gè)函數(shù)就像一個(gè)專門做這件事的人,我們調(diào)用它來(lái)做一些事情,它可
12、能需要我們提供一些數(shù)據(jù)給它,它執(zhí)行完成后可能會(huì)有一些執(zhí)行結(jié)果給我們。要求的數(shù)據(jù)就叫參數(shù),返回的執(zhí)行結(jié)果就是返回值。nstring s=Console.ReadLine()就是一個(gè)有返回結(jié)果的函數(shù);nConsole.WriteLine(hello)就是一個(gè)有執(zhí)行參數(shù)的函數(shù),只有告訴WriteLine被打印的數(shù)據(jù)它才知道如何打印;nint i=Convert.ToInt32(22)則是一個(gè)既有參數(shù)又有返回值的函數(shù)。o有了函數(shù)寫代碼就像拼積木,C#中的各種各樣的技術(shù)其實(shí)就是通過(guò)for、if等這些基礎(chǔ)的語(yǔ)法將不同的函數(shù)按照一定的邏輯組織起來(lái)。方法的定義及調(diào)用方法的定義:訪問(wèn)修飾符 static 返回值
13、類型 方法名(參數(shù))方法體;o 命名規(guī)則:方法名開(kāi)頭大寫,參數(shù)名開(kāi)頭小寫,參數(shù)名、變量名要有意義。o 方法一般定義在類中。o 方法的調(diào)用n對(duì)于靜態(tài)方法,若在同一個(gè)類中,直接寫名字調(diào)用。n一般:類名.方法名();o return可以立即退出所在的方法。常用的已經(jīng)學(xué)過(guò)的方法:o Console.WriteLine();o Console.Write();o Console.ReadLine();o Console.ReadKey();o int.Parse(string);o Convert.ToInt32(string);o 對(duì)于由static修飾的方法,使用:類名.方法名()調(diào)用.o 如果在類
14、中調(diào)用自己的由static修飾的方法,可以省略類名。變量的作用域(只講局部變量)l在方法中定義的變量為局部變量局部變量。l閱讀下面的程序,說(shuō)一下輸出結(jié)果是多少?變量的作用域(生存周期)o 在方法中定義的變量稱為局部變量n其作用域從定義開(kāi)始,到其所在的大括號(hào)結(jié)束為止。o 在一個(gè)方法中想要訪問(wèn)另一個(gè)方法中的變量,怎么辦?n兩種解決方法:參數(shù)和返回值o 方法中的return語(yǔ)句,導(dǎo)致函數(shù)立即返回。n 在返回值為void的函數(shù)中 return;n 在返回值非void的函數(shù)中 return 值; static void Main(string args) int a = 3; int b = PR(a)
15、; Console.WriteLine(a=0 PR(a)=1,a,b); Console.ReadKey(); public static int PR(int a) return a+=1; 練習(xí):寫一個(gè)方法1. 查找兩個(gè)整數(shù)中的最大值:int Max( int i1 , int i2 )2. 計(jì)算輸入數(shù)組的和:int Sum( int values )思考:o 即然Console.WiteLine()是方法,那么為什么WiteLine的參數(shù)可以是字符串類型,也可以是數(shù)字類型,還可以是布爾類型char類型呢?o 為什么要有方法的重載?函數(shù)重載(函數(shù)重名)函數(shù)的重名:static void
16、SayHello(string name) Console.WriteLine(我是0,name);static void SayHello(string name) Console.WriteLine(I am0,name);static void SayHello(string name) Console.WriteLine(我是0,name);static void SayHello(int age) Console.WriteLine(我的年齡0,age);static void SayHello(string name) Console.WriteLine(我是0,name);sta
17、tic int SayHello(string name) return 10;static void SayHello(string name) Console.WriteLine(我是0,name);static void SayHello(string name,string nickname) Console.WriteLine(我是0,昵稱是1,name,nickname);構(gòu)成重載的條件:參數(shù)類型不同或者參數(shù)個(gè)數(shù)不同,與返回值無(wú)關(guān)。思考:o 方法只能返回一個(gè)值,當(dāng)需要返回多個(gè)值時(shí)怎么辦?o 例如:寫一個(gè)方法,計(jì)算一個(gè)int類型數(shù)組中每個(gè)元素的總和、最大值與最小值?方法的out參數(shù)和
18、ref參數(shù)(*)函數(shù)參數(shù)默認(rèn)是值傳遞的,也就是“復(fù)制一份”,例子:int age=20;IncAge(age);Console.WriteLine(age=0,age);out則是內(nèi)部為外部變量賦值,out一般用在函數(shù)需要有多個(gè)返回值的場(chǎng)所。例:int.TryParse。o out:注重于傳出值o ref:可以傳出和傳入ref static void Main(string args) int a = 3; int b = PR(ref a); Console.WriteLine(a=0 PR(a)=1,a,b); Console.ReadKey(); public static int PR(ref int a) return a+=1; out static void Main(string args) int a = 3; int b = PR(out a); Console.WriteLine(a=0 PR(a)=1,a,b); Console.ReadKey(); public stat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于臨時(shí)簽訂合同報(bào)告
- 國(guó)企勞動(dòng)派遣合同
- 合同法案例精解
- 鐘點(diǎn)工聘用合同范本
- 大班課件《誰(shuí)是采蜜冠軍》
- 2024正規(guī)的自然人借款合同樣本
- 2024合同信息化管理系統(tǒng)【信息系統(tǒng)合同】
- 2024個(gè)人租房協(xié)議書合同租房協(xié)議書(詳細(xì)版)
- 2024標(biāo)準(zhǔn)銷售業(yè)務(wù)員合同范本
- 2024個(gè)體借款合同協(xié)議模板
- 部分輪轂的基本知識(shí)
- 小學(xué)數(shù)學(xué)六年級(jí)“24點(diǎn)”試題及答案
- Tekla建模快捷鍵
- 大航海時(shí)代四特產(chǎn)分布
- 鉆孔灌注樁驗(yàn)孔記錄表
- 法語(yǔ)書信格式(正式版)
- 偏差管理控制程序
- 客戶信息登記表
- 二手車復(fù)習(xí)題終極版本
- 畢業(yè)設(shè)計(jì)說(shuō)明書螺旋精確稱重給料機(jī)設(shè)計(jì)
- 十大危險(xiǎn)作業(yè)
評(píng)論
0/150
提交評(píng)論