第2章+C#語言基礎-3(課件)-《算法與程序設計-C#》同步教學_第1頁
第2章+C#語言基礎-3(課件)-《算法與程序設計-C#》同步教學_第2頁
第2章+C#語言基礎-3(課件)-《算法與程序設計-C#》同步教學_第3頁
第2章+C#語言基礎-3(課件)-《算法與程序設計-C#》同步教學_第4頁
第2章+C#語言基礎-3(課件)-《算法與程序設計-C#》同步教學_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C#程序設計

第2章C#語言基礎2本章目標了解什么是表達式了解什么是算術運算符了解什么是賦值運算符掌握如何使用關系運算符掌握邏輯運算符的使用方法掌握如何對變量進行移位操作了解算術運算符的優先級順序熟練掌握流程控制語句3C#基礎運算符和表達式★順序結構選擇結構循環結構跳轉語句4語句語句(statement)以分號終止由花括號{和}括起來的一系列語句構成代碼塊(block)聲明語句(declarationstatement)表達式語句(expressionstatement)選擇語句(selectionstatement):ifswitch循環語句(iterationstatement):while、do、for和foreach

語句跳轉語句(jumpstatement):break、continue、goto、return、throw語句等try...catch語句checked語句和unchecked語句lock語句using語句例:3-1Statements5運算符C#運算符(operator)用于在表達式中對一個或多個稱為操作數的進行計算并返回結果值算術運算符關系和類型測試運算符邏輯運算符賦值運算符字符串運算符位運算符條件運算符其他運算符6算術運算符注意:(1)算術運算符兩邊的操作應是數值型。若是字符型,則自動轉換成字符所對應的Unicode碼值后再進行運算(2)增量運算符(++、--)可以出現在操作數之前(++variable、--variable)或之后(variable++

、variable--

)操作數都是整數:取整操作數至少有一個是浮點數:浮點除法7賦值運算符運算符說明表達式結果=給變量賦值inta,b;a=1;b=a;運算后,b的值為1+=操作數1與操作數2相加后賦值給操作數1inta,b;a=2;b=3;b+=a;運算后,b的值為5-=操作數1與操作數2相減后賦值給操作數1inta,b;a=2;b=3;b-=a;運算后,b的值為1*=操作數1與操作數2相乘后賦值給操作數1inta,b;a=2;b=3;b*=a;運算后,b的值為6/=操作數1與操作數2相除后賦值給操作數1inta,b;a=2;b=6;b/=a;運算后,b的值為3%=操作數1與操作數2相除取余賦值給操作數1inta,b;a=2;b=7;b%=a;運算后,b的值為1賦值運算符的優先級最低8關系和類型測試運算符假設int[]myArray=newint[]{1,2};優先級比算術運算符低,比賦值運算符高。各個關系運算符的優先級相同。數值類型,關系運算符按照操作數的數值大小進行比較。對于char類型,關系運算符比較字符的Unicode編碼值除了“==”和“!=”外,其他關系運算符不能比較String對象9引用類型的相等比較比較運算符“==”大多數情況比較引用是否相等System.String類重載了“==”,比較字符串的內容值類型:

操作比較的是兩個變量的值是否相同對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內容是否相同。10is運算符is可以檢查對象是否與特定類型兼容,“兼容”表示對象是該類型,或派生于該類型eisT對象為null,結果為Falseis運算符只考慮引用轉換、裝箱轉換和拆箱轉換例:關系運算符e是表達式,T是數據類型//is和as運算的使用

inti=123;objectobj=456;if(iisint)Console.WriteLine("{0}isint",i);if(objisint)Console.WriteLine("{0}isint",obj);Aa=newA();Bb=newB();if(aisB)Console.WriteLine("aisB.");if(bisA)Console.WriteLine(“bisA.");其中:A是B的父類11as運算符用于執行引用類型的顯式轉換如果兼容,轉換成功不兼容,as運算符返回nullexpressionisType?(Type)expression:(Type)null主要用在:將基類類型轉換成派生類型12邏輯運算符將操作數進行邏輯運算,結果為True或False注意:“&&”、“||”有“短路”操作13邏輯運算符“&”一元運算符:&i;返回操作數地址(不安全代碼)二元運算符:整數操作數——按位與bool操作數——邏輯與“|”整數操作數——按位或bool操作數——邏輯或“^”整數操作數——按位異或bool操作數——邏輯異或例:3-3LogicTest14邏輯運算符15字符串運算符字符串運算符:“+”,用于串聯(拼接)兩個字符串一個操作數是字符串類型或兩個都是字符串類型時,執行字符串串聯如果一個操作數為null,則用空字符串來替換此操作數非字符串參數都通過調用從object類型繼承的虛ToString方法,返回null,則替換成空字符串教材51頁“計算機”+“應用技術”“123”+123“123”+1.23f“hello”+null+”world”16條件運算符邏輯表達式?

表達式1:

表達式2;計算a和b兩個數中較大的數,并將其賦給變量maxnum中,語句為:等價于:17其它運算符-sizeofsizeof用于獲取值類型的字節大小,僅適用于值類型,而不適用于引用類型返回int類型結果,單位是字節參數為已定義類型時,可以在托管代碼中運行例:3-6sizeof18其它運算符-typeoftypeof用于獲取類型的System.Type對象,通過System.Type類可訪問任何數據類型的信息獲取某種類型的Type對象有3種方法:使用typeof運算符使用GetType()方法調用Type類的靜態方法GetType()例:3-7typeof19運算符優先級表3-6按優先級從高到低的順序列出各運算符類別,同一類別中的運算符優先級相同表達式中出現兩個優先級相同的運算符時,按結合性進行計算盡量不要利用運算符的優先級,來生成正確的結果應該用括號控制優先級和結合性20表達式表達式的組成由操作數(變量、常量、函數)、運算符和圓括號按一定規則組成運算結果的類型由操作數和運算符共同決定表達式的書寫規則乘號不能省略,例如,a乘以b應寫為a*b。括號必須成對出現,而且只能使用圓括號;圓括號可以嵌套使用。表達式從左到右在同一個基準上書寫,無高低、大小區分21C#基礎★順序結構選擇結構循環結構跳轉語句22順序結構C#程序中語句執行的基本順序按各語句出現位置的先后次序執行賦值語句輸入語句輸出語句復合語句例:4-1Sequence23C#基礎★順序結構選擇結構循環結構跳轉語句24選擇結構C#包括兩種控制分支的條件語句if語句switch語句if條件語句包含多種形式:單分支、雙分支和多分支條件必須是布爾表達式25選擇結構C#與Java中的條件判斷語句對比:條件判斷語句JavaC#ifif(){…}二者完全相同if…else…if(){…}elseif(){…}二者完全相同else{…}switchC#與Java的語法有區別26if語句單分支結構語法形式:

if(條件表達式)

語句/語句塊statement(s);雙分支結構語法形式:

if

(條件表達式)

語句/語句塊1;

else

語句/語句塊2;注意If語句與C語言不同,即條件表達式必須是布爾類型的已知intx=10,y=20,z=30;以下語句執行后x、y、z的值:

if(x>y) z=x;x=y;y=z;x=20,y=20,z=3027if語句多分支結構語法形式:28switch語句switch語句也稱為開關語句,用于有多重選擇的場合測試某一個變量具有多個值時所執行的動作

switch

(控制表達式)

{

case

常量表達式1:語句1;break;

case

常量表達式2:語句2;break;

case

常量表達式n:語句n;break;

default:語句n+1;break;

}29switch語句Java與C#中的switch語句對比switch(int/char表達式){case常量表達式1:

語句1;

break;//可以沒有

case常量表達式2:

語句2;

break;//可以沒有

……default:

語句n;}Javaswitch(int/char/enum/string表達式){case常量表達式1:

語句1;

break;//必須有

case常量表達式2:

語句2;

break;//必須有

……default:

語句n;

break;//必須有}C#30練習intdays,month;Console.Write("請輸入月份:");month=int.Parse(Console.ReadLine());switch(month){case2:days=28;break;case4:case6:case9:case11:days=30;break;default:days=31;break;}Console.WriteLine("{0}月份有{1}天",month,days);Console.ReadLine();31switch語句控制表達式的類型:整數類型,字符類型、字符串、枚舉每個case后的常量表達式的數據類型與控制表達式相同,或可以隱式轉換為控制表達式的類型每個case后的常量表達式的值不能相同各個case子句出現的次序不影響語句的執行結果一個switch最多只能有一個default標簽如果每個case或default后有語句,則最后必須有跳轉語句結束執行case后包括多條執行語句,可以不加花括號多個case標簽可以共用一組語句序列32如何選擇if和switch測試表達式的值為離散值,而非連續值;且個數不多測試表達式的值本身為連續值,但可以轉化為離散值的場合33C#基礎★順序結構選擇結構循環結構跳轉語句34循環結構C#提供了4種不同的循環機制forwhiledo...whileforeach35for循環for循環語句是計數型循環語句,一般用于已知循環次數的情況,所以也稱為定次循環如果省略條件表達式condition,則循環條件默認永遠為真,從而產生死循環

for(initializer;condition;iterator){

循環體語句序列;}initializer;for(;condition;iterator){

循環體語句序列;}

for(initializer;condition;){

循環體語句序列;

iterator;}

for(initializer;;iterator){

循環體語句序列;}死循環36while循環while循環并不知道循環次數,由條件表達式控制例:4.13while37do…while循環do...while循環的循環體至少執行一次,而while循環的循環體可能一次也不執行猜數游戲。產生一隨機數,用戶猜數,提示大小,直到猜到位置。38練習猜數字回文數字輸出特殊圖形39foreach循環foreach語句用于循環訪問數組或集合以獲取所需信息foreach語句用于列舉集合中的每一個元素,并且通過執行循環體對每一個元素進行操作。foreach(數據類型變量名in

數組或集合名稱){ 循環體;}變量必須與數組或集合中元素的類型一致。數組或集合的元素是只讀的,值不能改變。如需改變,應使

溫馨提示

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

評論

0/150

提交評論