方法、決策循環(huán)語句及異常處理_第1頁
方法、決策循環(huán)語句及異常處理_第2頁
方法、決策循環(huán)語句及異常處理_第3頁
方法、決策循環(huán)語句及異常處理_第4頁
方法、決策循環(huán)語句及異常處理_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、方法、決策、循環(huán)語句及異常處理淮安微軟技術(shù)中心本章目標(biāo)理解如何使用方法及方法的重載決策與循環(huán)語句使用異常捕捉和處理錯(cuò)誤回顧 C# 中的命名空間using System;using System.Collections.Generic;using System.Text;namespace HelloWorld class Program static void Main(string args) / 系統(tǒng)定義的命名空間自定義的命名空間命名空間:一種組織代碼的方法 代碼及內(nèi)容唯一標(biāo)識 避免類重名回顧 引用命名空間using System; /引用 System 命名空間namespace Hel

2、loWorld class Program static void Main(string args) Console.WriteLine(Hello World); /不引用 System 命名空間/ using System; namespace HelloWorld class Program static void Main(string args) / Console.WriteLine(Hello World); System.Console.WriteLine (Hello World); 如果不使用using,要使用完全限定名稱WriteLine() 方法的完全限定名稱使用 u

3、sing 引用命名空間回顧如何避免重復(fù)性的操作,并使程序容易理解? static void Main(string args) string firName, secName; int firAge, secAge; Console.WriteLine(請輸入第一名學(xué)員的姓名:); Console.Write(); firName = Console.ReadLine(); Console.WriteLine(請輸入第一名學(xué)員的年齡:); Console.Write(); firAge = int.Parse(Console.ReadLine(); Console.WriteLine(請輸入第

4、二名學(xué)員的姓名:); Console.Write(); secName = Console.ReadLine(); Console.WriteLine(請輸入第二名學(xué)員的年齡:); Console.Write(); secAge = int.Parse(Console.ReadLine(); Console.WriteLine(第一名學(xué)員的姓名是: + firName + ,他今年 + firAge + 歲.); Console.WriteLine(第一名學(xué)員的姓名是:0,他今年1歲.,secName,secAge); 源代碼聲明方法什么是方法?使用方法有什么好處?類的行為,便于修改、增加可讀

5、性、可重用、封裝C# 中方法的定義形式:訪問修飾符 返回類型 方法名 ( 參數(shù)列表 ) / 訪問修飾符:public , private , protected / 返回類型:void ,int,string. / 方法名:單詞首字母小寫-Camel命名法 / 參數(shù)列表:可選 / 方法的主體 / 如果返回類型不為void,使用return返回相應(yīng)類型的值 / return str; return語句應(yīng)放在方法尾部,它會造成方法的結(jié)束。return語句后的任何語句都不會被執(zhí)行調(diào)用方法方法的存在就是為了被使用public int addValues(int firstNum, int Second

6、Num) /.int arg1 = 32;int arg2 = 24;int i = addValues(arg1, arg2);使用方法: 方法名( 參數(shù)列表 )方法名與被調(diào)用的方法名稱一致用于提供由方法接收的可選信息,必須為每個(gè)參數(shù)提供一個(gè)參數(shù)值變量作用域變量的作用域是指能夠使用該變量的程序區(qū)域/ / 局部作用域/ class Example public void firstMothod() int myVar; /局部變量 public void anotherMothod() myVar = 42; /錯(cuò)誤 -變量越界 / / 類作用域/ class Example public v

7、oid firstMothod() myField = 32; /ok public void anotherMothod() myField = 64; /ok int myField = 0;開發(fā)者用“字段”來描述一個(gè)類定義的變量。myField是在類的內(nèi)部以及兩個(gè)方法的外部定義的。所以myField可以由類中的所有方法使用。注意:在一個(gè)方法中,必須在使用一個(gè)變量前聲明它。但是一個(gè)方法能在定義一個(gè)字段的語句之前使用那個(gè)字段,編譯器為我們搞定一切。方法的重載class Example static void Main() new Example().sayHi(“zane”); new Ex

8、ample().sayHi(31); public void sayHi(string name) Console.WriteLine(“我叫0“,name); public void sayHi(int age) Console.WriteLine(“我今年0 歲“, age); /兩個(gè)方法名相同,而且在同一個(gè)作用域中聲明,我們稱之為重載方法名一致參數(shù)列表或參數(shù)類型不一致更改后的代碼static void Main(string args) private void Print(string str) Console.WriteLine(str); Console.Write(); priv

9、ate void Print(string name1, string name2, string age1, string age2) Console.WriteLine(第一位學(xué)員的姓名是: + name1 + ,他今年 + age1 + 歲); Console.WriteLine(第二位學(xué)院的姓名是:0,他今年1歲,name2,age2); Console.ReadLine(); private string Read() return Console.ReadLine(); 源代碼關(guān)系運(yùn)算符與復(fù)合賦值類別操作符描述主要()覆蓋優(yōu)先級一元!邏輯NOT關(guān)系運(yùn)算符=小于小于或等于大于大于或等

10、于相等=!=等于不等于條件&|邏輯AND邏輯OR賦值=復(fù)合賦值*=/=%=+=-=answer = answer + 42; answer += 42;C# 中的條件判斷條件判斷語句C#ifif ( ) if else if ( ) else if ( ) else switchswitch() case : break; default : break嵌套 if語句機(jī)票預(yù)定:輸出實(shí)際機(jī)票價(jià)格原價(jià)為4000元5-10月為旺季,頭等艙打9折,經(jīng)濟(jì)艙打7.5折其他時(shí)間為淡季,頭等艙打6折,經(jīng)濟(jì)艙打3折需要兩次判斷首先判斷是旺季還是淡季再判斷頭等艙還是經(jīng)濟(jì)艙嵌套 if 實(shí)現(xiàn)演示示例:使用嵌套 if

11、計(jì)算機(jī)票價(jià)格代碼分析關(guān)鍵代碼回顧if (month = 5 & month = 10) / 旺季 if (type = 1) / 頭等艙 Console.WriteLine(您的機(jī)票價(jià)格為:0, price * 0.9); else if (type = 2) / 經(jīng)濟(jì)艙 Console.WriteLine(您的機(jī)票價(jià)格為:0, price * 0.75); else / 淡季 / 示例源代碼嵌入的一對 ifelse嵌套 if 語法小結(jié)if(表達(dá)式1) if(表達(dá)式2) / 表達(dá)式2為真時(shí)執(zhí)行 else / 表達(dá)式2為假時(shí)執(zhí)行 else /表達(dá)式1為假時(shí)執(zhí)行嵌套 if :if 塊中又嵌入 if

12、switch 結(jié)構(gòu)switch (int / char / string表達(dá)式) case 常量表達(dá)式1: 語句1; break; /必須有 case 常量表達(dá)式2: 語句2; break; /必須有 default: 語句n; break; /必須有C#使用 switch 示例有兩名學(xué)員的姓名、考試科目、成績根據(jù)輸入的姓名,按以下方式輸出該名學(xué)員的成績 演示示例:利用 switch 輸出學(xué)員信息 姓名科目分?jǐn)?shù)張三C#91示例 分析關(guān)鍵代碼回顧string choice = Console.ReadLine(); / 輸入學(xué)員姓名switch ( choice ) case 張三: Conso

13、le.WriteLine( 0t1t2, name1, subject1, score1); break; case 李四: Console.WriteLine(0t1t2, name2, subject2, score2); break; default: Console.WriteLine(抱歉!沒有你要找的學(xué)員!); break;string 類型t 使輸出制表示例源代碼 常見錯(cuò)誤string choice = Console.ReadLine(); / 輸入學(xué)員姓名switch ( choice ) case 張三: Console.WriteLine( 0t1t2, name1, s

14、ubject1, score1); /break; case 李四: Console.WriteLine(0t1t2, name2, subject2, score2); /break; default: Console.WriteLine(抱歉!沒有你要找的學(xué)員!); /break;錯(cuò)誤原因:case 和 default 中都缺少 break 語句使用 switch 示例輸入一個(gè)時(shí)間(整數(shù))在6-10點(diǎn)之間,輸出“上午好”在11-13點(diǎn)之間,輸出“中午好”在14-18點(diǎn)之間,輸出“下午好”其他情況輸出“休息時(shí)間” 演示示例:使用 switch 問好C# 中的 switch 結(jié)構(gòu)小結(jié)條件判斷的

15、表達(dá)式類型 整型或字符串break 語句的要求:每個(gè) case 都有 breakdefault 也要有 break特殊情況:/ 示例6中的代碼string time;switch(time) case 6: case 7: case 8: case 9: case 10: Console.WriteLine(上午好 ); break; / default: Console.WriteLine(休息時(shí)間); break;case 中沒有其他語句時(shí),不需要break語句小結(jié)輸入一個(gè)時(shí)間如果是6點(diǎn)輸出“該起床了”如果是12點(diǎn)輸出“該吃飯了”否則輸出“該睡覺了”使用 switch 語句實(shí)現(xiàn)string

16、 time = Console.ReadLine(); / 輸入時(shí)間switch (time) / 判斷 case 6: Console.WriteLine(該起床了); break; case 12: Console.WriteLine(該吃飯了); break; default: Console.WriteLine(該睡覺了); break;查看源代碼C# 中的循環(huán)迭代循環(huán)語句C#dowhiledo /二者的語法和操作相同! while(條件)whilewhile(條件) /二者的語法和操作相同!forfor(初始值; 條件; 增/減) /二者的語法和操作相同!foreach新特性!for

17、each 循環(huán)結(jié)構(gòu)foreach循環(huán)一般用于遍歷整個(gè)集合或數(shù)組foreach (元素類型 變量名 in 集合或者數(shù)組名) / 語句輸入一個(gè)字符串,輸出其中的每個(gè)字符演示示例:foreach,簡單調(diào)試示例分析關(guān)鍵代碼分析static void Main(string args) Console.WriteLine(請輸入一個(gè)字符串:); / 輸入提示 / 從控制臺讀入字符串 string line = Console.ReadLine(); / 循環(huán)輸出字符串中的字符 foreach (char c in line) Console.WriteLine(c); Console.ReadLine(

18、);示例源代碼依次循環(huán)字符串中的每個(gè)字符VS調(diào)試技巧斷點(diǎn)(breakpoint):通知調(diào)試器應(yīng)在某點(diǎn)上中斷應(yīng)用程序并暫停執(zhí)行調(diào)試常用快捷鍵:F5開始調(diào)試Shift+F5停止調(diào)試F9設(shè)置或刪除斷點(diǎn)F10單步執(zhí)行監(jiān)視(watch)窗口:計(jì)算變量和表達(dá)式的值二重循環(huán) 某次程序大賽,3個(gè)班級各4名學(xué)員參賽,計(jì)算每個(gè)班參賽學(xué)員的平均分共3個(gè)班級,循環(huán)3次計(jì)算每個(gè)班的平均分每班4名學(xué)員,循環(huán)4次累加總分需要使用二重循環(huán)實(shí)現(xiàn)for、while、do-while、foreach 語句可以相互嵌套 演示示例:二重循環(huán)示例,跟蹤調(diào)試示例分析關(guān)鍵代碼/ 外層循環(huán)控制逐個(gè)計(jì)算每個(gè)班級的平均分for (i = 0; i

19、 3; i+) sum = 0; / 總分計(jì)數(shù)清零 Console.WriteLine(n請輸入第0個(gè)班的成績,i+1); / 內(nèi)層循環(huán)計(jì)算每個(gè)班級的總分 for (j = 0; j 4; j+) Console.Write(第0個(gè)學(xué)員的成績:, j+1); score= int.Parse(Console.ReadLine(); sum = sum + score; average = sum / 4; Console.WriteLine(第0個(gè)班的平均分為:1分,i+1,average);內(nèi)層循環(huán)結(jié)束后,才執(zhí)行外層循環(huán)的語句示例源代碼二重循環(huán)進(jìn)階用 * 打印一個(gè)直角三角形圖案二重循環(huán):外層

20、控制行數(shù),內(nèi)層打印每行的 *圖形特點(diǎn):每行的 * 個(gè)數(shù)與行數(shù)相等演示示例:用 * 打印直角三角形示例代碼分析關(guān)鍵代碼int rows = 5; / 打印的行數(shù)int i, j; / 循環(huán)變量/ 外層循環(huán)控制打印的行數(shù)for (i = 1; i = rows; i+) / 內(nèi)層循環(huán)控制每行打印*的個(gè)數(shù) for (j = 1; j = i; j+) Console.Write(*); Console.Write(n);內(nèi)層循環(huán)的結(jié)束條件與外層循環(huán)變量有關(guān)示例源代碼流程控制進(jìn)階在循環(huán)結(jié)構(gòu)中, continue 和 break怎樣跳轉(zhuǎn)?for() continue; for() break; 跳出循環(huán)

21、結(jié)構(gòu)跳到下次循環(huán)在二重循環(huán)中會怎樣呢?流程控制進(jìn)階continue下面紅色框中代碼的作用是什么?int count = 0; for (i = 0; i 3; i+) / 提示輸入成績 for (j = 0; j 4; j+) Console.Write(第0個(gè)學(xué)員的成績:, j + 1); score = int.Parse(Console.ReadLine(); sum = sum + score; if (score 85) continue; count+; / 計(jì)算平均分并輸出continue 跳出本次循環(huán),繼續(xù)下一次循環(huán)演示示例:使用斷點(diǎn)調(diào)試觀察程序執(zhí)行過程統(tǒng)計(jì)成績在85分以上的學(xué)

22、員人數(shù)流程控制進(jìn)階break 5個(gè)專賣店促銷,每個(gè)專賣店每人限購3件衣服,可以隨時(shí)選擇離開,離店時(shí)要結(jié)賬for(i=0;i5;i+) / 每次進(jìn)一個(gè)專賣店 for(j=0;j3;j+) / 每個(gè)店限購3件 if(離開這家店) break; 選購一件衣服 結(jié)賬演示示例:break 進(jìn)階示例5分析關(guān)鍵代碼回顧示例源代碼for (i = 0; i 5; i+) /外層循環(huán)控制依次進(jìn)入下一個(gè)專賣店 Console.WriteLine(n歡迎光臨第0家專賣店,i+1); for (j = 0; j 3; j+) / 內(nèi)層循環(huán)一次買一件衣服 Console.Write(要離開嗎?y/n); choice = Console.ReadLine(); if (choice = y) / 如果

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論