MES開發與應用 課件 1.1.5 工業管理軟件系統技術棧介紹-C#編程基礎;1.1.6 工業管理軟件系統技術棧介紹-面向對象基礎_第1頁
MES開發與應用 課件 1.1.5 工業管理軟件系統技術棧介紹-C#編程基礎;1.1.6 工業管理軟件系統技術棧介紹-面向對象基礎_第2頁
MES開發與應用 課件 1.1.5 工業管理軟件系統技術棧介紹-C#編程基礎;1.1.6 工業管理軟件系統技術棧介紹-面向對象基礎_第3頁
MES開發與應用 課件 1.1.5 工業管理軟件系統技術棧介紹-C#編程基礎;1.1.6 工業管理軟件系統技術棧介紹-面向對象基礎_第4頁
MES開發與應用 課件 1.1.5 工業管理軟件系統技術棧介紹-C#編程基礎;1.1.6 工業管理軟件系統技術棧介紹-面向對象基礎_第5頁
已閱讀5頁,還剩161頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1.1系統技術棧介紹——C#編程基礎C#中的變量C#中的運算符選擇結構語句循環結構語句C#基本語法方法06數組07程序調試08知識回顧.NET基礎知識;開發環境搭建;第一個C#程序;C#運行原理。學習目標通過本節學習:重點理解和掌握C#的變量、選擇結構語句和循環結構語句。掌握C#的語法格式、運算符和方法。了解數組和程序調試。01C#基本語法思考題C#有什么語法格式?C#代碼的基本格式C#代碼的基本格式每一種編程語言都有一套自己的語法規范,C#語言也不例外,同樣需要遵從一定的語法規范,如代碼的書寫、標識符的定義、關鍵字的應用等。定義類的格式[修飾符]class類名{程序代碼}C#代碼的基本格式注意事項在編寫C#代碼時,除了要遵從定義類的語法格式外,還需要特別注意以下幾點,具體如下:C#中的程序代碼可分為結構定義語句和功能執行語句,其中,結構定義語句用于聲明一個類或方法,功能執行語句用于實現具體的功能。每條功能執行語句的最后都必須用分號(;)結束。C#語言是嚴格區分大小寫的。在編寫C#代碼時,為了便于閱讀,通常會使用一種良好的格式進行排版。總結:“;”、“大小寫”、“格式”C#中的注釋C#中的注釋在編寫程序時,為了使代碼易于閱讀,通常會在實現功能的同時為代碼加一些注釋。注釋是對程序中某個功能或者某行代碼的解釋說明,在編譯程序時編譯器不會編譯這些注釋信息。intc=10;//定義一個整型變量注釋類型單行注釋:單行注釋通常用于對程序中的某一行代碼進行解釋,用符號“//”表示,“//”后面為被注釋的內容。總結:注釋使用”//”C#中的注釋C#中的注釋多行注釋:多行注釋就是注釋中的內容可以為多行,它以符號“/*”開頭,以符號“*/”結尾。/*intc=1 0;intx=5;*////<summary>///在集合中添加元素///</summary>staticvoidAdd(){}多行注釋:多行注釋就是注釋中的內容可以為多行,它以符號“/*”開頭,以符號“*/”結尾。總結:注釋使用”/*......*/”C#中的標識符C#中的標識符在編程過程中,經常需要在程序中定義一些符號來標記一些名稱,如類名、方法名、參數名、變量名等,這些符號被稱為標識符。標識符可以由任意順序的大小寫字母、數字、下劃線(_)和@符號組成,但標識符不能以數字開頭,且不能是C#中的關鍵字。//合法的標識符usernameusername123user_name_userName//不合法的標識符123usernameclass98.3HelloWorld以數字開頭關鍵字以數字開頭包含空格必須要嚴格遵守上面列出的規范,否則程序在編譯時會報錯C#中的標識符標識符規范為了增強代碼的可讀性,建議初學者在定義標識符時還應該遵循以下規范:類名、方法名和屬性名中的每個單詞的首字母要大寫。例如Age。這種命名方式被稱為大駝峰命名法或帕斯卡(Pascal)命名法字段名、變量名的首字母要小寫,之后的每個單詞的首字母均為大寫。例如:age、userName。這種命名方式被稱為小駝峰命名法。。常量名中的所有字母都大寫,單詞之間用下劃線連接。例如:DAY_OF_MONTH。在程序中,應該盡量使用有意義的英文單詞來定義標識符,使得程序便于閱讀。例如使用userName表示用戶名,password表示密碼。C#中的關鍵字C#中的關鍵字關鍵字是編程語言中事先定義好并賦予了特殊含義的單詞,也稱作保留字。和其他語言一樣,C#中保留了許多關鍵字。注意:1、所有的關鍵字都是小寫的。

2、程序中的標識符不能以關鍵字命名。C#中的常量C#中的常量常量就是在程序中固定不變的值,是不能改變的數據。例如數字1、字符'a'、浮點數3.2等。常量類型整型常量:整型常量是整數類型的數據,有二進制、八進制、十進制和十六進制4種表示形式。二進制:由數字0和1組成的數字序列。如01000000、10000001。八進制:以0開頭并且其后由0~7之間(包括0和7)的整數組成的數字序列,如:0342。十進制:數字0~9之間(包括0和9)的整數組成的數字序列。如:198。十六進制:以0x或者0X開頭并且其后由0~9、A~F(包括0和9、A和F)組成的數字序列,如0x25AF。C#中的常量C#中的常量浮點數常量:就是在數學中用到的小數。浮點數常量的類型如下所示:float單精度浮點數:后面以F或f結尾。double雙精度浮點數:后面以以D或d結尾。當在使用浮點數時也可以在結尾處不加任何的后綴,此時虛擬機會默認為double雙精度浮點數。2e3f3.6d0f3.84d5.022e+23f字符常量:用于表示一個字符,一個字符常量要用一對英文半角格式的單引號('')引起來,他可以是英文字母、數字、標點符號以及由轉義序列來表示的特殊字符。‘a’‘1’‘&''\r''\u0000'空白字符C#中的常量C#中的常量字符串常量:用于表示一串連續的字符,一個字符串常量要用一對英文半角格式的雙引號(“”)引起來。"HelloWorld""123""Welcome\nXXX"""布爾常量:布爾常量即布爾型的兩個值true和false,該常量用于區分一個事物的真與假。null常量:null常量只有一個值null,表示對象的引用為空。02C#中的變量變量的定義變量的定義程序運行期間,隨時可能產生一些臨時數據,應用程序會將這些數據保存在一些內存單元中,每個內存單元都用一個標識符來標識。這些內存單元我們稱之為變量,定義的標識符就是變量名,內存單元中存儲的數據就是變量的值。intx=0,y;y=x+3;變量的數據類型變量的數據類型C#是一門強類型的編程語言,他對變量的數據類型有嚴格的限定。在定義變量時必須聲明變量的類型,在為變量賦值時必須賦予和變量同一種類型的值,否則程序會報錯。變量的數據類型值類型引用類型變量的數據類型整數類型變量整數類型變量:用來存儲整數數值,即沒有小數部分的值。整數類型分類:字節型(byte)、短整型(short)、整型(int)和長整型(long)四種類型所占存儲空間的大小以及取值范圍:類型名占用空間取值范圍byte8位(1個字節)-27~27-1short16位(2個字節)-215~215-1int32位(4個字節)-231~231-1long64位(8個字節)-263~263-1占用的內存大小變量的數據類型浮點數類型變量浮點數類型變量:用來存儲小數數值。浮點數類型分類:單精度浮點數(float)、雙精度浮點數(double),double型所表示的浮點數比float型更精確。兩種浮點數所占存儲空間的大小以及取值范圍:類型名占用空間取值范圍float32位(4個字節)1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double64位(8個字節)4.9E-324~1.7E+308,-4.9E-324~-1.7E+308注意:在C#中,一個小數會被默認為double類型的值,因此在為一個float類型的變量賦值時需要注意一點,所賦值的后面一定要加上字母“F”(或者小寫“f”);而為double類型的變量賦值時,可以在所賦值的后面加上字符“D”(或小寫“d”),也可以不加。變量的數據類型字符類型變量字符類型變量:用于存儲一個單一字符,在C#中用char表示。占用空間:C#中每個char類型的字符變量都會占用2個字節。符號:在給char類型的變量賦值時,需要用一對英文半角格式的單引號(‘’)把字符括起來,如‘a‘。charc='a';//為一個char類型的變量賦值字符'a'變量的數據類型布爾類型變量布爾類型變量:布爾類型變量用來存儲布爾值,在C#中用bool表示,該類型的變量只有兩個值,即true和false。boolflag=false; //聲明一個bool類型的變量,初始值為falseflag=true; //改變flag變量的值為true變量的類型轉換變量的類型轉換在程序中,當把一種數據類型的值賦給另一種數據類型的變量時,需要進行數據類型轉換。類型轉換分類:自動類型轉換和強制類型轉換。自動類型轉換:自動類型轉換也叫隱式類型轉換,指的是兩種數據類型在轉換的過程中不需要顯式地進行聲明。自動類型轉換滿足的條件:兩種數據類型彼此兼容。目標類型的取值范圍大于源類型的取值范圍。變量的類型轉換自動類型轉換自動類型轉換的三種條件:整數類型之間可以實現轉換。整數類型轉換為float類型。其他類型轉換為double類型。

byteb=3;intx=b;//程序把byte類型的變量b轉換成了int類型,無需特殊聲明變量的類型轉換變量的類型轉換強制類型轉換:也叫顯式類型轉換,指的是兩種數據類型之間的轉換需要進行顯式地聲明。強制類型轉換滿足的條件:當兩種類型彼此不兼容,或者目標類型取值范圍小于源類型時,自動類型轉換無法進行,這時就需要進行強制類型轉換。變量的類型轉換強制類型轉換usingSystem;namespaceProgram02{classProgram{staticvoidMain(string[]args){bytea;//定義byte類型的變量aintb=298;//定義int類型的變量ba=(byte)b;Console.WriteLine("b="+b);Console.WriteLine("a="+a);Console.ReadKey();}}}將int類型的變量b強制轉換成byte類型,并復制給a變量的作用域變量的作用域變量需要在他的作用范圍內才可以被使用,這個作用范圍稱為變量的作用域。程序中,變量一定會被定義在某一對大括號中,該大括號所包含的代碼區域便是這個變量的作用域。一對大括號就是一個作用域,里作用域可以調用外作用域資源,外作用域不可調用里作用域資源。變量的類型轉換強制類型轉換classProgram{staticvoidMain(string[]args){intx=12;//定義了變量x{inty=96;//定義了變量yConsole.WriteLine("xis"+x);//訪問變量xConsole.WriteLine("yis"+y);//訪問變量y}y=x;//訪問變量x,為變量y賦值Console.WriteLine("xis"+x);//訪問變量xConsole.ReadKey();

}}x的作用域在紅色大括號內y的作用域y的作用域外訪問變量外y,會出現編譯錯誤的提示將該行刪除,再運行程序03C#的運算符C#中的運算符運算符算術運算符賦值運算符比較運算符邏輯運算符位運算符特點:處理四則運算的符號特點:將常量、變量或表達式的值賦給某一個變量特點:對兩個數值或變量進行比較,其結果是一個布爾值特點:邏輯運算符用于對布爾型的數據進行操作,其結果仍是一個布爾型特點:專門針對數字0和1進行操作的算術運算符算術運算符運算符運算范例結果+正號+33-負號b=4;-b;-4+、-、*、/加、減、乘、除省略省略%取模(求余數)7%52++自增(前)a=2;b=++a;a=3;b=3;++自增(后)a=2;b=a++;a=3;b=2;--自減(前)a=2;b=--a;a=1;b=1;--自減(后)a=2;b=a--;a=1;b=2;算術運算符:用來處理四則運算的符號,這是最簡單、最常用的運算符號。算術運算符及其用法:算術運算符算術運算符在進行自增(++)和自減(--)的運算時,如果運算符(++或--)放在操作數的前面則是先進行自增或自減運算,再進行其他運算。反之,如果運算符放在操作數的后面則是先進行其他運算再進行自增或自減運算。intnum1=1;intnum2=2;intres=num1+num2++;Console.WriteLine("num2="+num2);Console.WriteLine("res="+res);運算符++寫在了變量num2的后面,屬于先運算再自增,因此運行結果為:num2=3、res=3算術運算符算術運算符在進行除法運算時,當除數和被除數都為整數時,得到的結果也是一個整數。如果除法運算有小數參與,得到的結果會是一個小數。在進行取模(%)運算時,運算結果的正負取決于被模數(%左邊的數)的符號,與模數(%右邊的數)的符號無關。如:(-5)%3=-2,而5%(-3)=2。3500/1000*1000先執行除法運算3500/1000,得到結果為3,再乘以1000,因此運行結果為3000賦值運算符賦值運算符運算符運算范例結果=賦值a=3;b=2;a=3;b=2;+=加等于a=3;b=2;a+=b;a=5;b=2;-=減等于a=3;b=2;a-=b;a=1;b=2;*=乘等于a=3;b=2;a*=b;a=6;b=2;/=除等于a=3;b=2;a/=b;a=1;b=2;%=模等于a=3;b=2;a%=b;a=1;b=2;賦值運算符:將常量、變量或表達式的值賦給某一個變量。賦值運算符及其用法:賦值運算符賦值運算符在賦值過程中,運算順序從右往左,將右邊表達式的結果賦值給左邊的變量。注意事項:在C#中可以通過一條賦值語句對多個變量進行賦值算術運算符除了“=”,其他的都是特殊的賦值運算符,以“+=”為例,x+=3就相當于x=x+3,首先會進行加法運算x+3,再將運算結果賦值給變量x。-=、*=、/=、%=賦值運算符都可依此類推。intx,y,z;//定義int類型變量x,y,zx=y=z=5;//同時為x,y,z三個變量賦值比較運算符比較運算符運算符運算范例結果==相等于4==3false!=不等于4!=3true<小于4<3false>大于4>3true<=小于等于4<=3false>=大于等于4>=3true比較運算符:用于對兩個數值或變量進行比較,其結果是一個布爾值,即true或false。比較運算符及其用法:邏輯運算符邏輯運算符運算符運算范例結果&與true&truetrue|或false|truetrue^異或true^truefalse!非!falsetrue&&短路與true&&falsefalse||短路或true||falsetrue邏輯運算符:用于對布爾型的數據進行操作,其結果仍是一個布爾型。邏輯運算符及其用法:邏輯運算符邏輯運算符邏輯運算符運算過程中的細節:

邏輯運算符可以針對結果為布爾值的表達式進行運算。運算符“&”和“&&”都表示與操作,當且僅當運算符兩邊的操作數都為true時,其結果才為true,否則結果為false。使用“&”進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算。如果使用“&&”進行運算,當左邊為false時,右邊的表達式不會進行運算,因此“&&”被稱作短路與。運算符“|”和“||”都表示或操作,當運算符兩邊的操作數任何一邊的值為true時,其結果為true,當兩邊的值都為false時,其結果才為false。同與操作類似,“||”表示短路或,當運算符“||”的左邊為true時,右邊的表達式不會進行運算。運算符“^”表示異或操作,當運算符兩邊的布爾值相同時(都為true或都為false),其結果為false。當兩邊布爾值不相同時,其結果為true。000位運算符000位運算符運算符運算范例結果&按位與0&10|按位或0|11~取反~01^按位異或0^11<<左移00000010<<200001000>>右移11100010>>211111000位運算符:是針對二進制數的每一位進行運算的符號,他是專門針對數字0和1進行操作的。位運算符

及其用法:運算符的優先級運算符的優先級優先級運算符1.[]()2++--~!(數據類型)3*/%4+-5<<>>>>>6<><=>=7==!=在對一些比較復雜的表達式進行運算時,要明確表達式中所有運算符參與運算的先后順序,我們把這種順序稱作運算符的優先級。運算符的優先級:優先級運算符8&9++--~!10&11|12&&13?:(三元運算符)14=*=/=%=+=-=<<=>>=>>>=&=^=|=04選擇結構語句思考題C#中的條件語句有哪些,特點是什么?If條件語句if條件語句選擇語句:需要對一些條件作出判斷,從而決定執行哪一段代碼。選擇語句分為if條件語句和switch條件語句。if條件語句的語法格式分為3種:if語句:if語句是指如果滿足某種條件,就進行某種處理。if(條件語句){

代碼塊}當條件語句為true時,執行代碼塊,否則不執行if語句的語法格式:if語句的執行流程:條件語句if條件語句namespaceProgram06{classProgram{staticvoidMain(string[]args){//聲明變量x作為判斷依據intx=5;//如果x的值小于10則執行if大括號中的代碼if(x<10){x++;}Console.WriteLine("x="+x);Console.ReadKey();}}}5<10,因此條件成立,執行x++If…else條件語句if…else條件語句if…else語句:是指如果滿足某種條件,就進行某種處理,否則就進行另一種處理。

if(判斷條件){

執行語句1 ……}else{

執行語句2 ……}當判斷條件為true時,執行“執行語句1”,否則,執行“執行語句2”if…else語句的語法格式:if條件語句的執行流程:If…else條件語句namespaceProgram07{classProgram{staticvoidMain(string[]args){intnum=19;if(num%2==0){//判斷條件成立,num被2整除Console.WriteLine("num是一個偶數");}else{Console.WriteLine("num是一個奇數");}Console.ReadKey();}}}19模以2的結果為1,判斷條件不成立。因此會執行else后面{}中的語句if…else條件語句If…elseif…else條件語句If…elseif…else條件語句if…elseif…else語句:用于對多個條件進行判斷,進行多種不同的處理。

if(判斷條件1){

執行語句1}elseif(判斷條件2){

執行語句2}...elseif(判斷條件n){

執行語句n}else{

執行語句n+1}當判斷條件1為true時,執行“執行語句1”,否則,判斷“判斷條件2”是否為true,否則,判斷“判斷條件3”是否為true,依次類推if…elseif…else語句的語法格式:if條件語句的執行流程:If…elseif…else條件語句staticvoidMain(string[]args){intgrade=75;//定義學生成績if(grade>=80){Console.WriteLine("該成績的等級為優");}elseif(grade>=70){Console.WriteLine("該成績的等級為良");}elseif(grade>=60){Console.WriteLine("該成績的等級為中");}else{Console.WriteLine("該成績的等級為差");}Console.ReadKey();}成績大于等于80執行成績大于等于70小于80時執行成績大于等于60小于70時執行小于60時執行If…elseif…else條件語句三元運算符多學一招——三元運算符三元運算符的作用和if-else語句類似。語法格式如下:

判斷條件?表達式1:表達式2intx=0;inty=1;intmax;if(x>y){max=x;}else{max=y;}獲取最大值if..else語句:獲取最大值三元云算符:intx=0;inty=1;intmax;max=x>y?x:y;Switch條件語句switch條件語句switch條件語句也是一種很常用的選擇語句,他針對某個表達式的值作出判斷,從而決定程序執行哪一段代碼。switch語句的具體格式:switch(表達式){

case目標值1:

執行語句1

break;........case目標值n:

執行語句n

break;default:

執行語句n+1 break;}表達式的值與case語句中的目標值匹配如果與表達式的值匹配,則執行“執行語句n”跳出switch語句,不再執行switch中的語句如果沒找到任何匹配的值,就會執行default后的語句Switch條件語句switch條件語句staticvoidMain(string[]args){intweek=5;switch(week){case1:…….case5:Console.WriteLine(“星期五");break;……}Console.ReadKey();}表達式的值為5表達式5匹配到的目標值在控制臺輸出“星期五”05循環結構語句思考題C#中的循環語句有哪些,特點是什么?While循環語句while循環語句循環語句:在C#中有一種可以重復執行同一代碼塊的語句。循環語句分為while循環語句、do…while循環語句和for循環語句。while循環語句:反復地根據條件判斷來決定是否執行大括號內的執行語句。while(循環條件){執行語句………}條件成立,則執行“執行語句”,反復的判斷循環條件,直到不滿足條件時,結束while循環while的語法結構:while執行流程:While循環語句while循環語句usingSystem;namespaceProgram11{classProgram{staticvoidMain(string[]args){intx=1;//定義變量x,初始值為1while(x<=4){//循環條件Console.WriteLine("x="+x);//條件成立,打印x的值x++;}Console.ReadKey();}}}1小于4,執行循環體x進行自增x等于2,小于4,執行循環體x進行自增x等于3,小于4,執行循環體x進行自增x等于4,執行循環體x進行自增x等于5,小于4,條件不成立,結束while循環Do…while循環語句do…while循環語句do…while循環語句和while循環語句功能類似,二者的不同之處在于,while語句需要先判斷循環條件,然后根據循環條件的結果來決定是否執行大括號中的代碼,而do…while循環語句先要執行一次大括號內的代碼再判斷循環條件。do{執行語句………}while(循環條件);do…while的語法結構:while執行流程:循環體無論循環條件是否成立,循環體都執行一次Do…while循環語句do…while循環語句usingSystem;namespaceProgram12{classProgram{staticvoidMain(string[]args){intx=1;//定義變量x,初始值為1do{Console.WriteLine("x="+x);//打印x的值x++;//將x的值自增}while(x<=4);//循環條件Console.ReadKey();}}}首先執行循環體,x進行自增然后判斷循環條件是否成立,x為2,條件成立,再次執行循環體For循環語句for循環語句for循環:通常用于循環次數已知的情況。for(初始化表達式;循環條件;操作表達式){

執行語句

………}for循環的語法結構:循環體分別用①表示初始化表達式、②表示循環條件、③表示操作表達式、④表示循環體,通過序號來具體分析for循環的執行流程。For循環語句for循環語句for(①;②;③){ ④}第一步,執行①第二步,執行②,如果判斷結果為true,執行第三步,如果判斷結果為false,執行第五步第三步,執行④第四步,執行③,然后繼續執行第二步第五步,退出循環For循環語句for循環語句usingSystem;namespaceProgram13{classProgram{staticvoidMain(string[]args){intsum=0;//定義變量sum,用于記住累加的和for(inti=1;i<=4;i++){//i的值會在1~4之間變化sum+=i;//實現sum與i的累加}Console.WriteLine("sum="+sum);//打印累加的和Console.ReadKey();}}}i=1,并且i小于4,條件成立,執行循環體首先執行i++,i=2,i小于4,執行循環體然后再次執行i++,i=3,i小于4,執行循環體,按照這樣的步驟執行代碼,直到i大于4,結束循環跳轉語句跳轉語句跳轉語句:用于實現循環執行過程中程序流程的跳轉。包括break語句、goto語句和continue語句。break語句使用在switch條件語句和循環語句。switch條件語句:終止某個case并跳出switch結構。循環語句:跳出當前循環語句,執行后面的代碼。當break語句出現在嵌套循環中的內層循環時,他只能跳出內層循環goto語句:當在嵌套循環中首先需要對外層循環添加標記,然后使用goto語句跳出外層循環。continue語句:終止本次循環,并執行下一次循環。跳轉語句跳轉語句——breakclassProgram{staticvoidMain(string[]args){intx=1;//定義變量x,初始值為1while(x<=4){//循環條件Console.WriteLine("x="+x);//條件成立,打印x的值if(x==3){break;}x++;//x進行自增}Console.ReadKey();}}當x==3時,執行break語句,跳出while循環,結束循環跳轉語句跳轉語句——gotostaticvoidMain(string[]args){inti,j;//定義兩個循環變量for(i=1;i<=9;i++){//外層循環for(j=1;j<=i;j++){//內層循環if(i>4){//判斷i的值是否大于4gotoend;}Console.Write("*");//輸出*}Console.WriteLine();//換行}end:Console.ReadKey();}跳轉到end標識的語句執行該語句跳轉語句跳轉語句——continueclassProgram{staticvoidMain(string[]args){intsum=0;//定義變量sum,用于記住和for(inti=1;i<=100;i++){if(i%2==0){//如果i是一個偶數,執行if語句中的代碼continue;}sum+=i;//實現sum和i的累加}Console.WriteLine("sum="+sum);Console.ReadKey();}}結束本次循環,即不執行sum+=i;語句,直接進入下次循環中循環嵌套循環嵌套循環嵌套:在一個循環中嵌套一個循環。最常見的嵌套循環為for循環中嵌套for循環。for循環中嵌套for循環的語法格式:for(初始化表達式;循環條件;操作表達式){………for(初始化表達式;循環條件;操作表達式){執行語句

………}………}外層循環內層循環循環嵌套循環嵌套namespaceProgram17{classProgram{staticvoidMain(string[]args){inti,j;//定義兩個循環變量for(i=1;i<=9;i++){//外層循環for(j=1;j<=i;j++){//內層循環Console.Write("*");//打印*}Console.WriteLine();//換行}Console.ReadKey();}}}外層循環控制行數內層循環控制在一行中打印*的個數06方法什么是方法什么是方法在程序中,將可以完成一定特定功能的代碼段提出來用一個方法來表示。例如一個段求兩個數之和代碼,我們可以用以Add()方法來表示,需要求和時,只需調用Add()方法即可。方法的語法格式:[修飾符]返回值類型方法名([[參數類型參數名1],[參數類型參數名2],……]){

方法體 return返回值;}可選,修飾符可以省略,可以用于對訪問權限進行限定,如private,也可使用靜態修飾符static描述方法返回值的數據類型方法名使用變量的命名規則中的帕斯卡命名規范用于結束方法以及返回方法指定類型的值被return語句返回的值,該值會返回給調用者用于限定調用方法時傳入參數的數據類型用于接收調用方法時傳入的數據什么是方法什么是方法classProgram{staticvoidMain(string[]args){……intproduct=Multiply(3,5);Console.WriteLine("num1*num2="+product);Console.ReadKey();}……//定義兩個數相乘的方法publicstaticintMultiply(intnum1,intnum2){intsum=num1*num2;returnsum;}}在Main()中調用Multiply()方法方法的重載方法的重載C#中允許在一個程序中定義多個同名方法,但是參數的類型或個數必須不同,這種方式被稱作方法的重載。重載的條件:方法名相同。參數個數或參數類型不相同。需要注意的是:方法的重載與返回值類型無關。方法的重載方法的重載//下面的方法實現了兩個整數相加publicstaticintAdd(intx,inty){returnx+y;}//下面的方法實現了三個整數相加publicstaticintAdd(intx,inty,intz){returnx+y+z;}//下面的方法實現了兩個小數相加publicstaticdoubleAdd(doublex,doubley){returnx+y;}Add()方法中有兩個int型的參數,返回值為int型Add()方法中有三個int型的參數,返回值為int型Add()方法中有三個double型的參數,返回值為double型方法的重載多學一招——快速判斷方法重載快速判斷方法重載:將方法名前面的修飾符、返回類型以及方法體去掉。將方法參數列表中的參數名去掉。將兩個方法做比較,首先名稱不相同一定不是重載方法,其次如果名稱相同,其他部分不相同的構成重載,相同的則不是重載的方法。

publicstaticintFunc(intnum){…} //方法1publicstaticboolFunc(intnum1,intnum2){…} //方法2publicstaticstringFunc(strings1,strings2){…} //方法3publicstaticstringFunc(strings2,strings1){…} //方法4 Func(intnum) //方法1 Func(intnum1,intnum2) //方法2 Func(strings1,strings2) //方法3 Func(strings2,strings1) //方法4

Func(int) //方法1 Func(int,int) //方法2 Func(string,string) //方法3 Func(string,string) //方法4

方法的重載方法的重載namespaceProgram19{classProgram{staticvoidMain(string[]args){Console.WriteLine("-2的絕對值={0}",Math.Abs(-2));

Console.WriteLine("-2的3次方={0}",Math.Pow(-2,3));

Console.WriteLine("sin(0°)={0}",Math.Sin(0));

Console.WriteLine("cos(0°)={0}",Math.Cos(0));

Console.ReadKey();}}}求0°的余弦值求-2的絕對值求-2的3次方求0°的正弦值07數組數組的定義數組的定義數組中的元素會被自動賦予一個默認值,根據元素類型的不同,默認初始化的值也是不同的。數組中元素的默認初始化值:數據類型默認初始化值byte、short、int、long0float、double0.0char一個空字符,即’\u0000’boolfalse引用類型null,表示變量不引用任何對象數組的定義數組的定義為了更好地理解數組的這種定義方式,我們將定義和賦值分開來定義:int[]x; //聲明一個int[]類型的變量xx=newint[100]; //創建一個長度為100的數組

數組定義的內存狀態:聲明變量x的內存狀態:創建數組時的內存狀態:數組的定義數組的定義usingSystem;namespaceProgram22{classProgram{staticvoidMain(string[]args){int[]arr; arr=newint[3];Console.WriteLine("arr[0]="+arr[0]); //訪問數組中的第一個元素Console.WriteLine("arr[1]="+arr[1]); //訪問數組中的第二個元素Console.WriteLine("arr[2]="+arr[2]); //訪問數組中的第三個元素Console.WriteLine("數組的長度是:"+arr.Length);//打印數組長度Console.ReadKey();}}}聲明int型數組變量arr創建數組對象通過Length屬性獲取數組的長度數組的定義數組的定義數組是指一組數據的集合,數組中的每個數據被稱作元素。在數組中可以存放任意類型的元素,但同一個數組里存放的元素類型必須一致。數組類型:一維數組和多維數組。數組的定義:int[]數組名=newint[數組的長度];

int[]數組名=newint[100];

定義一個長度為100的int型數組數組的定義數組的定義classProgram{staticvoidMain(string[]args){int[]arr=newint[4];//定義可以存儲4個整數的數組arr[0]=1;//為第1個元素賦值1arr[1]=2;//為第2個元素賦值2//下面的代碼是打印數組中每個元素的值Console.WriteLine("arr[0]="+arr[0]);Console.WriteLine("arr[1]="+arr[1]);Console.WriteLine("arr[2]="+arr[2]);Console.WriteLine("arr[3]="+arr[3]);Console.ReadKey();}}獲取數組中的值,數組中第3、4角標中的值沒有賦予數組的定義數組的定義動態初始化:在定義數組時只指定數組的長度,由系統自動為元素賦初值的方式。靜態初始化:定義數組的同時就為數組的每個元素賦值。數組的靜態初始化有兩種方式:上述的兩種方式都可以實現數組的靜態初始化,但是為了簡便,建議采用第二種方式。1、類型[]數組名=new類型[]{元素,元素,……};2、類型[]數組名={元素,元素,元素,……};

數組的常見操作遍歷數組數組的遍歷:依次訪問數組中的每個元素。namespaceProgram27{classProgram{staticvoidMain(string[]args){int[]arr={1,2,3,4,5};//定義數組//使用for循環遍歷數組的元素for(inti=0;i<arr.Length;i++){Console.WriteLine(arr[i]);//通過索引訪問元素}Console.ReadKey();}}}數組的常見操作數組最值在操作數組時,經常需要獲取數組中元素的最值。staticintGetMax(int[]arr){intmax=arr[0];//下面通過一個for循環遍歷數組中的元素for(intx=1;x<arr.Length;x++){if(arr[x]>max){//比較arr[x]的值是否大于maxmax=arr[x];//條件成立,將arr[x]的值賦給max}}returnmax;}數組的常見操作冒泡排序冒泡排序:不斷地比較數組中相鄰的兩個元素,較小者向上浮,較大者往下沉,整個過程和水中氣泡上升的原理相似。。冒泡排序的過程:第一步,從第一個元素開始,將相鄰的兩個元素依次進行比較,直到最后兩個元素完成比較。如果前一個元素比后一個元素大,則交換他們的位置。整個過程完成后,數組中最后一個元素自然就是最大值,這樣也就完成了第一輪比較。第二步,除了最后一個元素,將剩余的元素繼續進行兩兩比較,過程與第一步相似,這樣就可以將數組中第二大的數放在倒數第二個位置。第三步,以此類推,持續對越來越少的元素進行兩兩比較,直到沒有任何一對元素需要比較為止。數組的常見操作冒泡排序//定義對數組排序的方法publicstaticvoidBubbleSort(int[]arr){for(inti=0;i<arr.Length-1;i++){for(intj=0;j<arr.Length-i-1;j++){if(arr[j]>arr[j+1]){//比較相鄰元素inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}Console.Write(“第”+(i+1)+“輪排序后:”);}}外層循環,用來控制進行多少輪比較內層循環,控制每輪比較的次數比較相鄰元素,如果前者小于后者,就交換兩個元素的位置數組的常見操作冒泡排序冒泡排序具體執行過程:多維數組多維數組多維數組:在數組中嵌套數組。在程序中比較常見的就是二維數組。二維數組語法格式如下:在定義數組時,直接對數組中的元素進行初始化的兩種方式:int[,]arr=newint[3,4]; 1、int[,]arr=newint[3,4]{{1,2,3,4},{1,2,3,4},{1,2,3,4}};2、int[,]arr={{1,2,3,4},{1,2,3,4},{1,2,3,4}};

二維數組的定義數組的定義staticvoidMain(string[]args){//定義二維數組arr并賦值int[,]arr=newint[3,4]{{1,2,3,4},{2,3,3,4},{3,4,3,4}};intsum=0;//定義變量記錄總銷售額for(inti=0;i<arr.GetLength(0);i++){//遍歷數組元素intgroupSum=0;//定義變量記錄小組銷售總額//遍歷小組內每個人的銷售額for(intj=0;j<arr.GetLength(1);j++){groupSum=groupSum+arr[i,j];}sum=sum+groupSum;//累加小組銷售額 ……}}獲取i行j列的元素08程序調試設置斷點設置斷點在程序的調試過程中,需要對程序中某些數據的變化情況進行觀察,才能分析出程序出錯的原因,這時就需要為程序設置斷點。斷點可以讓正在運行的程序在需要的地方中斷,當再次運行程序時,程序會在斷點處暫停,方便觀察程序中的數據。添加斷點的三種方式:左擊代碼左邊的灰色區域即可,斷點插入成功后左側會有彩色圓點出現,并且插入斷點后的代碼會高亮顯示。在某行代碼處右擊鼠標,在彈出的快捷菜單中,選擇“斷點”選項,然后選擇“插入斷點”即可。使用快捷鍵“F9”設置斷點。刪除斷點刪除斷點刪除斷點:左擊代碼左側已插入的彩色圓點,即可刪除斷點。在斷點上右擊選擇【刪除斷點】選項。刪除所有斷點,快捷組合鍵“Ctrl+Shift+F9”。啟動調試會話、檢查變量與表達式啟動調試會話、檢查變量與表達式啟動調試會話:通過單擊“調試”菜單中的“開始調試”按鈕(或按下F5鍵),啟動調試會話。在調試會話中,程序將在斷點處中斷執行。檢查變量與表達式:當程序在斷點處中斷時,可以使用“自動窗口”、“局部窗口”、“監視窗口”等工具來檢查變量的值、執行表達式等。這些窗口可以幫助您理解程序的執行狀態和數據。單步調試單步調試單步調試:當程序出現Bug時,通常采用的是一步一步跟蹤程序執行的流程,根據變量的值,找到錯誤的原因的方法。單步調試分為逐語句(快捷鍵F11)和逐過程(快捷建F10)。逐語句調試會進入方法內部調試,單步執行方法體中的每一行代碼,逐過程調試不會進入方法體內部,而是把方法當做一行代碼來執行。開啟單步調試:在代碼中設置斷點后,在工具欄中選擇Debug模式,并單擊按鈕,開啟程序調試功能。單步調試單步調試單步調試的界面:單步調試單步調試調試按鈕:調試按鈕的作用:全部中斷:該按鈕可以將正在執行的程序全部中斷,快捷建Ctrl+Alt+Break。停止調試:該按鈕用于停止調試程序,快捷建Shift+F5。重新啟動:該按鈕用于重新啟動程序調試,快捷鍵Ctrl+Shift+F5。顯示下一條語句:該按鈕用于顯示下一條執行的語句,快捷鍵Alt+數字鍵*。逐語句:該按鈕可以讓程序按照逐語句進行調試,快捷鍵F11。逐過程:該按鈕可以讓程序按照逐過程進行調試,快捷鍵F10。跳出:該按鈕用于跳出正在執行的程序,快捷鍵Shift+F11。單步調試單步調試當使用逐語句和逐過程按鈕進行單步調試,調試信息會顯示在自動窗口、局部變量和監視的窗口,具體信息如下:自動窗口:自動根據當前選中對象顯示其調試信息。局部變量窗口:只顯示當前幀的局部變量信息。監視1窗口:檢索用戶自己添加的變量信息。觀察變量觀察變量觀察變量值的方法:使用自動窗口查看變量的值。使用局部變量窗口查看變量的值使用鼠標懸停的辦法監視變量的值使用監視1窗口查看變量的值使用即時窗口查看變量的值條件斷點條件斷點條件斷點可以快速定位到需要調試的循環次數。使用條件斷點調試程序的步驟如下所示:首先為需要中斷的代碼添加斷點,然后右擊斷點,在彈出框中單擊【條件(C)】按鈕。勾選條件選項,將條件表達式的值設置為true,設置中斷表達式設置為,此時設置斷點完畢,啟動調試,練習?本章練習請簡要說明&&與&的區別。請說明while循環與for循環的異同。?預習練習簡述面向對象的概念。本章小節本章主要介紹了學習C#語言所需的基礎知識,包括:介紹了C#語言的基本語法、常量、變量的定義;介紹了常見運算符的使用;介紹了條件選擇語句和循環結構語句的概念和使用;介紹了方法和數組的使用;介紹了程序調試。通過本章的學習,能夠掌握C#語言的基本語法、變量和運算符、流程控制語句、方法、數組和程序調試的使用。1.1.6面向對象基礎深圳市信息職業技術學院面向對象的概念01目

錄類與對象02訪問修飾符03構造函數04this關鍵字0506070809垃圾回收static關鍵字嵌套類匿名類對象初始化0710知識回顧C#基本語法C#中的變量C#中的運算符選擇結構語句循環結構語句方法數組程序調試學習目標通過本節學習可以:重點學習類的定義及對象重點學習構造方法重點學習this和static關鍵字掌握面向對象的概念掌握訪問修飾符掌握垃圾回收了解嵌套類了解匿名類了解對象初始化器01面向對象的概念思考題面向對象有哪些特征?面向對象的概念面向對象的概念面向對象(Object-OrientedProgramming,簡稱OOP)是一種編程范式,它以對象作為程序的基本單元,通過對象之間的交互來實現程序的邏輯和功能。面向對象思想有三大特征:封裝性、繼承性和多態性。封裝性:面向對象的核心思想,他將對象的特征和行為封裝起來,不需要讓外界知道具體實現細節,這就是封裝思想。繼承性主要描述的是類與類之間的關系,通過繼承,可以在無需重新編寫原有類的情況下,對原有類的功能進行擴展。多態性指的是同一操作用于不同的對象,會產生不同的執行結果。02類與對象思考題類的成員有哪些?怎么訪問類的成員?類與對象類與對象類是對某一類事物的抽象描述。對象用于表示現實中該類事物的個體。類與對象之間的關系:類對象類與對象-類的定義類的定義在面向對象的思想中最核心的就是對象,為了在程序中創建對象,首先需要定義一個類。類是對象的抽象,他用于描述一組對象的共同特征和行為。類中可以定義字段和方法,其中字段用于描述對象的特征,方法用于描述對象的行為。定義類時需要使用到“class”關鍵字聲明。類與對象-類的定義類的定義

usingSystem;namespaceProgrom01{publicclassPerson{//定義Person類,public為訪問修飾符publicintage;//定義int類型的字段agepublicvoidSpeak(){//定義Speak()方法Console.WriteLine("大家好,我今年"+age+"歲!");}}}class關鍵字聲明Person類類與對象-對象的創建與使用對象的創建與使用創建對象:通過new關鍵字來實現。創建對象的格式:類名對象名稱=new類名();變量p和對象之間的引用關系Personp=newPerson();創建Person對象Person類型的變量P創建Person對象類與對象-對象的創建與使用對象的創建與使用namespaceProgrom01{classProgram{staticvoidMain(string[]args){Personp1=newPerson();//創建第一個Person對象Personp2=newPerson();//創建第二個Person對象p1.age=18;//為age字段賦值p1.Speak();//調用對象的方法p2.Speak();Console.ReadKey();}}}調用對象中的成員類與對象-對象的創建與使用對象的創建與使用p1和p2變量引用的對象在內存中的狀態。類與對象-對象的創建與使用對象的創建與使用在實例化對象時,程序會自動為類中的字段進行初始化默認值,針對不同類型的字段,會賦予不同的初始值。不同類型字段的默認初始值字段類型初始值byte0short0int0long0LDemical0.0M字段類型初始值double0.0Dchar'\0'booleanfalse引用數據類型null類與對象-對象的創建與使用對象的創建與使用classProgram{staticvoidMain(string[]args){Personp2=newPerson();//創建p2對象p2.Say();//調用Say()方法p2=null;p2.Say();Console.ReadKey();}}publicclassPerson{publicvoidSay(){//創建Say()方法,輸出一句話Console.WriteLine("Welcometoitcast!");}P2為null,不能引用Person類中的Say()方法,程序會拋出異常將p2對象設置為null,表示該p2變量不指向任何一個對象類與對象-對象的創建與使用對象的創建與使用對象成為垃圾的過程。類與對

溫馨提示

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

評論

0/150

提交評論