版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.NET程序設(shè)計(jì)程序設(shè)計(jì)主講教師:李主講教師:李璟璟聯(lián)系電話:聯(lián)系電話-mail: 第二講第二講 C#C#程序設(shè)計(jì)基礎(chǔ)(一)程序設(shè)計(jì)基礎(chǔ)(一)n掌握掌握C#的數(shù)據(jù)類型及常用運(yùn)算符和優(yōu)先級。的數(shù)據(jù)類型及常用運(yùn)算符和優(yōu)先級。 n了解控制流程的兩種方法。了解控制流程的兩種方法。n理解和掌握布爾邏輯的基本概念及布爾運(yùn)算符的理解和掌握布爾邏輯的基本概念及布爾運(yùn)算符的用法。用法。n掌握分支、循環(huán)流程控制語句的使用方法。掌握分支、循環(huán)流程控制語句的使用方法。n重點(diǎn)和難點(diǎn):重點(diǎn)和難點(diǎn):C#的數(shù)據(jù)類型及常用運(yùn)算符、布爾的數(shù)據(jù)類型及常用運(yùn)算符、布爾運(yùn)算符的用法、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
2、方運(yùn)算符的用法、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法。法。第二講第二講 C#C#程序設(shè)計(jì)基礎(chǔ)(一)程序設(shè)計(jì)基礎(chǔ)(一)n2.1 C#數(shù)據(jù)類型數(shù)據(jù)類型n2.2 C#運(yùn)算符與優(yōu)先級運(yùn)算符與優(yōu)先級n2.3 C#流程控制語句流程控制語句2.1 C#2.1 C#數(shù)據(jù)類型數(shù)據(jù)類型n2.1.1值類型值類型 n2.1.2引用類型引用類型 n2.1.3值類型間的數(shù)據(jù)轉(zhuǎn)換值類型間的數(shù)據(jù)轉(zhuǎn)換 C#C#數(shù)據(jù)類型數(shù)據(jù)類型nC#數(shù)據(jù)類型分為兩類:值類型和引用類型。數(shù)據(jù)類型分為兩類:值類型和引用類型。nC#中把基本數(shù)據(jù)類型規(guī)定為值類型,而把一些較中把基本數(shù)據(jù)類型規(guī)定為值類型,而把一些較大的類型規(guī)定為引用類型,這種設(shè)計(jì)方式是為了大的
3、類型規(guī)定為引用類型,這種設(shè)計(jì)方式是為了得到最佳的性能。得到最佳的性能。 n值類型包括整型數(shù)類型、布爾類型、浮點(diǎn)類型和值類型包括整型數(shù)類型、布爾類型、浮點(diǎn)類型和小數(shù)型、結(jié)構(gòu)類型和枚舉類型。小數(shù)型、結(jié)構(gòu)類型和枚舉類型。n引用類型包括類類型、數(shù)組、接口類型和委托類引用類型包括類類型、數(shù)組、接口類型和委托類型、字符串類型型、字符串類型 。值類型變量和引用類型變量的主要區(qū)別值類型變量和引用類型變量的主要區(qū)別n存儲(chǔ)位置存儲(chǔ)位置值類型變量(定長)直接把變量的值保存在堆棧中。值類型變量(定長)直接把變量的值保存在堆棧中。引用類型的變量(變長)把實(shí)際數(shù)據(jù)的地址保存在堆引用類型的變量(變長)把實(shí)際數(shù)據(jù)的地址保存在
4、堆棧中,而實(shí)際數(shù)據(jù)則保存在堆中。棧中,而實(shí)際數(shù)據(jù)則保存在堆中。n賦值操作賦值操作值類型變量在賦值時(shí)使用了內(nèi)存復(fù)制的方式,一個(gè)變值類型變量在賦值時(shí)使用了內(nèi)存復(fù)制的方式,一個(gè)變量的操作不會(huì)影響到其他變量。量的操作不會(huì)影響到其他變量。引用類型變量在賦值時(shí),直接傳遞的是地址,不存在引用類型變量在賦值時(shí),直接傳遞的是地址,不存在內(nèi)存數(shù)據(jù)的復(fù)制,沒有性能損失,對一個(gè)變量的操作內(nèi)存數(shù)據(jù)的復(fù)制,沒有性能損失,對一個(gè)變量的操作會(huì)影響到引用同一個(gè)對象的另一個(gè)變量。會(huì)影響到引用同一個(gè)對象的另一個(gè)變量。.NET基本類型基本類型 在在.NET Framework中,被編譯器直接支持的中,被編譯器直接支持的數(shù)據(jù)類型稱為基
5、本類型,也被設(shè)計(jì)成類,每種數(shù)據(jù)數(shù)據(jù)類型稱為基本類型,也被設(shè)計(jì)成類,每種數(shù)據(jù)類型都有屬性和方法,在類型都有屬性和方法,在.NET Framework類庫中類庫中都有對應(yīng)的類名。都有對應(yīng)的類名。 .NET基本類型包括:基本類型包括:基本值類型:包括整型、浮點(diǎn)類型、小數(shù)型、布爾型、基本值類型:包括整型、浮點(diǎn)類型、小數(shù)型、布爾型、字符型。字符型?;疽妙愋停喊ɑ疽妙愋停喊∣bject類型(對象類型)、類型(對象類型)、String類型。類型。2.1.1 2.1.1 值類型值類型 u聲明一個(gè)值類型的語法形式為:聲明一個(gè)值類型的語法形式為:數(shù)據(jù)類型名數(shù)據(jù)類型名 變量名稱變量名稱 = n; 例如:
6、例如: int a = 100; /聲明一個(gè)整型變量聲明一個(gè)整型變量a,并賦初值為,并賦初值為100; 注意,注意,C#不允許使用未初始化的變量。不允許使用未初始化的變量。名稱名稱.NET類名類名說明說明范圍范圍sbyteSystem.SByte8位有符號整數(shù)位有符號整數(shù)-2n-12n-1-1(n=8)byteSystem.Byte8位無符號整數(shù)位無符號整數(shù)02n-1(n=8)shortSystem.Int1616位有符號整數(shù)位有符號整數(shù)-2n-12n-1-1(n=16)ushortSystem.Uint1616位無符號整數(shù)位無符號整數(shù)02n-1(n=16)intSystem.Int3232位
7、有符號整數(shù)位有符號整數(shù)-2n-12n-1-1(n=32)uintSystem.Uint6432位無符號整數(shù)位無符號整數(shù)02n-1(n=32)longSystem.Int6464位有符號整數(shù)位有符號整數(shù)-2n-12n-1-1(n=64)ulongSystem.Uint3264位無符號整數(shù)位無符號整數(shù)02n-1(n=64)floatSystem.Single32位單精度浮點(diǎn)數(shù)位單精度浮點(diǎn)數(shù)(7位有效數(shù)字位有效數(shù)字)1.510-45 3.41038doubleSystem.Double64位雙精度浮點(diǎn)數(shù)位雙精度浮點(diǎn)數(shù)(15到到16位有效數(shù)字位有效數(shù)字)5.010-324 1.710308decima
8、lSystem.Decimal 128位高精度十進(jìn)制數(shù)位高精度十進(jìn)制數(shù)(28位到位到29位有效數(shù)字位有效數(shù)字)1.010-28 7.91028boolSystem.BooleanTrue或或 falsecharSystem.Char16位位Unicode字符字符C#基本值類型基本值類型注:有效數(shù)字指從第一個(gè)不是零的數(shù)字起到最后一個(gè)數(shù)為止的數(shù)位。注:有效數(shù)字指從第一個(gè)不是零的數(shù)字起到最后一個(gè)數(shù)為止的數(shù)位。整數(shù)型整數(shù)型浮點(diǎn)型浮點(diǎn)型小數(shù)型小數(shù)型布爾型布爾型字符型字符型關(guān)于基本值類型的說明(關(guān)于基本值類型的說明(1):):n如果對一個(gè)整數(shù)的數(shù)值沒有作出指示,編譯器將其默認(rèn)為如果對一個(gè)整數(shù)的數(shù)值沒有作出
9、指示,編譯器將其默認(rèn)為int類型,若不是類型,若不是int型,要加相應(yīng)后綴,如:型,要加相應(yīng)后綴,如: uint ui=9000u; long l=9000L; ulong ul=9000L; n如果對一個(gè)非整數(shù)的數(shù)值沒有作出指示,編譯器將其默認(rèn)如果對一個(gè)非整數(shù)的數(shù)值沒有作出指示,編譯器將其默認(rèn)為為double類型,如果想指定為類型,如果想指定為float型或小數(shù)型,數(shù)值要型或小數(shù)型,數(shù)值要分別加后綴分別加后綴f或或m, 如:如: float f=345.12f; decimal d=10.0m;nbool類型的值和整數(shù)類型不能互相轉(zhuǎn)換。類型的值和整數(shù)類型不能互相轉(zhuǎn)換。關(guān)于基本值類型的說明(關(guān)
10、于基本值類型的說明(2):):nchar類型的值是使用單引號括起來的,如類型的值是使用單引號括起來的,如A,漢漢。nC#定義了一種特殊形式的字符數(shù)據(jù),即以定義了一種特殊形式的字符數(shù)據(jù),即以“”開頭的轉(zhuǎn)義字開頭的轉(zhuǎn)義字符,轉(zhuǎn)義字符用于在程序中取代特殊的控制字符,如下表所符,轉(zhuǎn)義字符用于在程序中取代特殊的控制字符,如下表所示。示。轉(zhuǎn)義序列轉(zhuǎn)義序列字符字符轉(zhuǎn)義序列轉(zhuǎn)義序列字符字符單引號單引號f換頁換頁雙引號雙引號n換行換行反斜杠反斜杠r回車回車0空空t水平水平Taba警告警告v垂直垂直Tabb退格(退格()結(jié)構(gòu)類型結(jié)構(gòu)類型n在實(shí)際生活中,經(jīng)常把一組相關(guān)的信息放在一起。在實(shí)際生活中,經(jīng)常把一組相關(guān)的信
11、息放在一起。n如,記錄一本書的相關(guān)信息如書名、作者和內(nèi)容等。如果如,記錄一本書的相關(guān)信息如書名、作者和內(nèi)容等。如果按照簡單的管理,每一條記錄都要放到三個(gè)不同的變量中,按照簡單的管理,每一條記錄都要放到三個(gè)不同的變量中,這樣的工作量很大,也不夠直觀。這樣的工作量很大,也不夠直觀。nC#結(jié)構(gòu)體可以解決這個(gè)問題。把一系列相關(guān)的變量組織結(jié)構(gòu)體可以解決這個(gè)問題。把一系列相關(guān)的變量組織成為一個(gè)單一實(shí)體的過程,稱為生成結(jié)構(gòu)的過程。這個(gè)單成為一個(gè)單一實(shí)體的過程,稱為生成結(jié)構(gòu)的過程。這個(gè)單一實(shí)體的類型就叫做結(jié)構(gòu)類型,每一個(gè)變量稱為結(jié)構(gòu)的成一實(shí)體的類型就叫做結(jié)構(gòu)類型,每一個(gè)變量稱為結(jié)構(gòu)的成員。結(jié)構(gòu)類型的變量采用員
12、。結(jié)構(gòu)類型的變量采用struct來進(jìn)行聲明。聲明形式如來進(jìn)行聲明。聲明形式如下:下:n 訪問修飾符訪問修飾符 struct 結(jié)構(gòu)名稱結(jié)構(gòu)名稱n n /主體主體n n下面根據(jù)記錄書中的信息定義一個(gè)結(jié)構(gòu)體,代碼下面根據(jù)記錄書中的信息定義一個(gè)結(jié)構(gòu)體,代碼如下:如下:npublic struct cententn public string title;n public string author;n public string content;nn 結(jié)構(gòu)類型舉例:結(jié)構(gòu)類型舉例:nusing System;nnamespace StructExamplen public struct Pointn p
13、ublic int x;n public int y;n public string s;n n class Programn public static void Main()n Point p;n p.x = 3;n p.y = 4;n p.s = ok;n Console.WriteLine(The result is 0,1,2, p.x, p.y, p.s);n Console.ReadLine();n n nn運(yùn)行結(jié)果:運(yùn)行結(jié)果:The result is 3,4,ok枚舉類型枚舉類型n枚舉是值類型的一種特殊形式,為簡單類型的常數(shù)值提供一種方枚舉是值類型的一種特殊形式,為簡單類型的
14、常數(shù)值提供一種方便記憶的方法。枚舉類型的定義形式一般為:便記憶的方法。枚舉類型的定義形式一般為:n enum:枚舉數(shù)據(jù)類型枚舉數(shù)據(jù)類型 枚舉名枚舉名 枚舉值表枚舉值表;n每一種枚舉類型都有一種基本類型,每一種枚舉類型都有一種基本類型,long、int、short和和byte等等整數(shù)類型均可作為枚舉類型的基本類型,如果不指明數(shù)據(jù)類型,整數(shù)類型均可作為枚舉類型的基本類型,如果不指明數(shù)據(jù)類型,則默認(rèn)為則默認(rèn)為int型,且第一個(gè)元素的值為型,且第一個(gè)元素的值為0,其后每一個(gè)連續(xù)元素的,其后每一個(gè)連續(xù)元素的值加值加1遞增,但是也可以給元素直接賦值定義。如:遞增,但是也可以給元素直接賦值定義。如:nenu
15、m DaysMon,Tue,Wed,Fri,Sat,Sun; /Mon:0,Tue:1n該枚舉名為該枚舉名為Days,枚舉值共有,枚舉值共有7個(gè),即一周中的個(gè),即一周中的7天,所有被聲天,所有被聲明為明為Days類型的變量,其值只能是七天中的某一天。例如,當(dāng)定類型的變量,其值只能是七天中的某一天。例如,當(dāng)定義義Days類型變量類型變量aDays后,變量后,變量aDay的值為如下形式:的值為如下形式:nDays aDay;naDay=Days.Wed;n又如:又如:nenum Data:long Min=255l,Mid=1024l,Max=32768l;枚舉類型舉例枚舉類型舉例nusing S
16、ystem;nnamespace EnumExamplen class Programn /定義枚舉型數(shù)據(jù)定義枚舉型數(shù)據(jù)days,并賦值,并賦值,Sun到到Sat的值分別對應(yīng)于的值分別對應(yīng)于0到到6n enum days Sun, Mon, Tue, Wed, Thu, Fri, Sat ;n static void Main()n Console.WriteLine(days.Wed);n Console.WriteLine(int)days.Wed);n /定義定義days型變量型變量myday,為其賦枚舉中的值,為其賦枚舉中的值Frin days myday = days.Fri;n C
17、onsole.WriteLine(myday);n Console.ReadLine();n n nn運(yùn)行結(jié)果:運(yùn)行結(jié)果:nWedn3nFri2.1.2 2.1.2 引用類型引用類型 u在基本類型里的引用類型有兩個(gè)數(shù)據(jù)類型,即在基本類型里的引用類型有兩個(gè)數(shù)據(jù)類型,即Object類型和類型和String類型。類型。 名稱名稱.NET 庫別名庫別名說明說明ObjectSystem.Object 根類型,根類型,.NET庫中的其它任何類型庫中的其它任何類型都是從它派生而來的(包括值類都是從它派生而來的(包括值類型)。型)。StringSystem.String代表代表Unicode字符串字符串關(guān)于基
18、本引用類型的說明關(guān)于基本引用類型的說明n(1)Object類型類型 在在C#中,中,Object類型是一切類型的最終父類型是一切類型的最終父類型,所有內(nèi)在的和用戶定義的類型歸根結(jié)底都類型,所有內(nèi)在的和用戶定義的類型歸根結(jié)底都是由它派生而來的。是由它派生而來的。n(2)String類型(字符串)類型(字符串) C#提供了一個(gè)封裝良好的提供了一個(gè)封裝良好的string類,可以方類,可以方便地執(zhí)行字符串相關(guān)的操作,如下所示:便地執(zhí)行字符串相關(guān)的操作,如下所示: string string1=“你好你好”; string string2=“C#”; string string3=string1+str
19、ing2;n(3)字符串在賦值方面像值類型,而不像引用類型。)字符串在賦值方面像值類型,而不像引用類型。nusing System;nclass stringexamplenstatic void Main()nstring s1=a string;nstring s2=s1;nConsole.WriteLine(s1 is + s1);nConsole.WriteLine(s2 is + s2);ns1=another string;nConsole.WriteLine(s1 is now +s1);nConsole.WriteLine(s2 is now + s2);nConsole.Re
20、adLine();nnn運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:ns1 is a stringns2 is a stringns1 is now another stringns2 is now a stringn(4)String是是Uncode字符串,即每個(gè)英文字母與漢字一樣,均字符串,即每個(gè)英文字母與漢字一樣,均占兩個(gè)字節(jié),長度均為占兩個(gè)字節(jié),長度均為1。例如:。例如:nstring str=“ab張三張三cde”;nConsole.WriteLine(str.Length); /輸出結(jié)果:輸出結(jié)果:7。n(5)可以使用可以使用Format方法將字符串表示為規(guī)定格式。規(guī)定格式方法將字符串表示為規(guī)定格
21、式。規(guī)定格式的一般形式為:的一般形式為:nN,M:格式碼格式碼n其中其中, :表示其中的內(nèi)容為可選項(xiàng)。表示其中的內(nèi)容為可選項(xiàng)。N:從零開始的整數(shù),表示第幾個(gè)參數(shù)。從零開始的整數(shù),表示第幾個(gè)參數(shù)。M:可選整數(shù),表示最小長度。若該參數(shù)的長度小于可選整數(shù),表示最小長度。若該參數(shù)的長度小于M的絕對值,就用空的絕對值,就用空格填充,如果格填充,如果M為負(fù),則左對齊;如果為負(fù),則左對齊;如果M為正,則右對齊。為正,則右對齊。M默認(rèn)為默認(rèn)為0。格式碼格式碼:可選的格式化代碼字符串可選的格式化代碼字符串(字母不區(qū)分大小寫字母不區(qū)分大小寫)。n如:如:nint i=123;double j=123.453;nS
22、tring s=String.Format(“i=0,-7:d5,j=1,7:f2”,i,j);nConsole.WriteLine(s);n結(jié)果:結(jié)果:i=00123 ,j= 123.45部分格式碼部分格式碼格式符格式符含義含義示例示例:(int i=10;double x=10.5;)結(jié)果結(jié)果C將數(shù)字按將數(shù)字按照金額形照金額形式輸出式輸出Console.WriteLine(“0:C”,i);¥10.00Console.WriteLine(“0:C”,x);¥10.50 Dn輸出整數(shù)輸出整數(shù)(n為數(shù)字為數(shù)字個(gè)數(shù),不個(gè)數(shù),不足補(bǔ)足補(bǔ)0)Console.WriteLine(“0:D”,i);10
23、Console.WriteLine(“0:D5”,i);00010Fn小數(shù)點(diǎn)后小數(shù)點(diǎn)后位數(shù)固定位數(shù)固定(n為小數(shù)為小數(shù)點(diǎn)位數(shù),點(diǎn)位數(shù),不足補(bǔ)不足補(bǔ)0)Console.WriteLine(“0:F”,i);10.00Console.WriteLine(“0:F4”,i);10.50002.1.3 2.1.3 值類型之間的數(shù)據(jù)轉(zhuǎn)換值類型之間的數(shù)據(jù)轉(zhuǎn)換 u同類整數(shù)值類型之間有兩種轉(zhuǎn)換方式:同類整數(shù)值類型之間有兩種轉(zhuǎn)換方式: 隱式轉(zhuǎn)換與顯式轉(zhuǎn)換;隱式轉(zhuǎn)換與顯式轉(zhuǎn)換;u所有值類型之間的轉(zhuǎn)換,都可以使用所有值類型之間的轉(zhuǎn)換,都可以使用Convert類轉(zhuǎn)換。類轉(zhuǎn)換。 (1)(1)同類整數(shù)值類型之間的數(shù)據(jù)轉(zhuǎn)換
24、同類整數(shù)值類型之間的數(shù)據(jù)轉(zhuǎn)換- -隱式轉(zhuǎn)換隱式轉(zhuǎn)換 從低精度、小范圍的數(shù)據(jù)類型轉(zhuǎn)換為高從低精度、小范圍的數(shù)據(jù)類型轉(zhuǎn)換為高精度、大范圍的數(shù)據(jù)類型,可以用隱式轉(zhuǎn)換。精度、大范圍的數(shù)據(jù)類型,可以用隱式轉(zhuǎn)換。 例如:例如: intint k = 1; k = 1; long i = 2; long i = 2; i = k; / i = k; /隱式轉(zhuǎn)換隱式轉(zhuǎn)換(2)(2)同類整數(shù)值類型之間的數(shù)據(jù)轉(zhuǎn)換同類整數(shù)值類型之間的數(shù)據(jù)轉(zhuǎn)換- -顯式轉(zhuǎn)換顯式轉(zhuǎn)換 從大范圍類型的數(shù)據(jù)轉(zhuǎn)換為小范圍類型的從大范圍類型的數(shù)據(jù)轉(zhuǎn)換為小范圍類型的數(shù)據(jù)的時(shí)候,必須采用顯式轉(zhuǎn)換,而且特別謹(jǐn)數(shù)據(jù)的時(shí)候,必須采用顯式轉(zhuǎn)換,而且特別謹(jǐn)
25、慎,因?yàn)榇藭r(shí)有丟失數(shù)據(jù)的危險(xiǎn)。如:慎,因?yàn)榇藭r(shí)有丟失數(shù)據(jù)的危險(xiǎn)。如: long k = 5000; int i = (int)k 所有的隱式轉(zhuǎn)換也都可以采用顯式轉(zhuǎn)換的形所有的隱式轉(zhuǎn)換也都可以采用顯式轉(zhuǎn)換的形式來表示。如:式來表示。如: int i = 10; long j = (long)i; (3)使用)使用Convert類進(jìn)行所有值類型間的轉(zhuǎn)換類進(jìn)行所有值類型間的轉(zhuǎn)換 命命 令令結(jié)結(jié) 果果Convert.ToBoolean(val) val轉(zhuǎn)化為轉(zhuǎn)化為boolConvert.ToByte(val)val轉(zhuǎn)化為轉(zhuǎn)化為byteConvert.ToChar(val)val轉(zhuǎn)化為轉(zhuǎn)化為charCo
26、nvert.ToDecimal(val)val轉(zhuǎn)化為轉(zhuǎn)化為decimalConvert.ToDoube(val)val轉(zhuǎn)化為轉(zhuǎn)化為doubleConvert.ToInt16(val)val轉(zhuǎn)化為轉(zhuǎn)化為shortConvert.ToInt32(val)val轉(zhuǎn)化為轉(zhuǎn)化為intConvert.ToInt64(val)val轉(zhuǎn)化為轉(zhuǎn)化為longConvert.ToSByte(val)val轉(zhuǎn)化為轉(zhuǎn)化為sbyteConvert.ToSingle(val)val轉(zhuǎn)化為轉(zhuǎn)化為floatConvert.ToString(val)val轉(zhuǎn)化為轉(zhuǎn)化為stringConvert.ToUInt16(val)val轉(zhuǎn)
27、化為轉(zhuǎn)化為ushortConvert.ToUInt32(val)val轉(zhuǎn)化為轉(zhuǎn)化為unitConvert.ToUInt64(val)val轉(zhuǎn)化為轉(zhuǎn)化為ulongConvert類示例類示例nstatic void Main()nndouble balance,interestRate;nConsole.WriteLine(請輸入當(dāng)前余額(元):請輸入當(dāng)前余額(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(請輸入年利率:請輸入年利率:);ninterestRate=1+Convert.ToDouble(Co
28、nsole.ReadLine()/100.0;nbalance*=interestRate;nConsole.WriteLine(1年后的余額將達(dá)年后的余額將達(dá)0:f2元。元。,balance);nConsole.ReadLine();n2.2 2.2 運(yùn)算符與優(yōu)先級運(yùn)算符與優(yōu)先級nC#運(yùn)算符分為以下兩大類:運(yùn)算符分為以下兩大類:算術(shù)運(yùn)算符算術(shù)運(yùn)算符n數(shù)學(xué)運(yùn)算符:數(shù)學(xué)運(yùn)算符:+、-,*,/,%n遞增遞減運(yùn)算符:遞增遞減運(yùn)算符:+,-(用于前綴用于前綴); +,-(用于后綴用于后綴)n算術(shù)賦值運(yùn)算符:算術(shù)賦值運(yùn)算符:=,*=,/=,%=,+=,-=布爾運(yùn)算符布爾運(yùn)算符 下面只講算術(shù)運(yùn)算符,第二節(jié)
29、再講布爾運(yùn)算符。下面只講算術(shù)運(yùn)算符,第二節(jié)再講布爾運(yùn)算符。數(shù)學(xué)表達(dá)式示例數(shù)學(xué)表達(dá)式示例nint var1,var2=5,var3=6;nvar1=var2+var3;nvar1=var2-var3;nvar1=var2*var3;nvar1=var2/var3;nvar1=var2%var3;遞增遞減運(yùn)算符示例遞增遞減運(yùn)算符示例nint var1,var2=5;nvar1=+var2; /var1的值是的值是var2+1,var2遞增遞增1nvar1=-var2; /var1的值是的值是var2-1,var2遞減遞減1nvar1=var2+; /var1的值是的值是var2,var2遞增遞增1
30、nvar1=var2-; /var1的值是的值是var2,var2遞減遞減1算術(shù)賦值運(yùn)算符示例算術(shù)賦值運(yùn)算符示例nint var1,var2=5;nvar1=var2;nvar1+=var2;/ var1= var1+var2nvar1-=var2;/ var1= var1- var2nvar1*=var2;/ var1= var1* var2nvar1/=var2;/ var1=var1/var2nvar1%=var2;/ var1= var1% var2算術(shù)運(yùn)算符(優(yōu)先級高算術(shù)運(yùn)算符(優(yōu)先級高低)低)組組運(yùn)算符運(yùn)算符一元運(yùn)算符(一元運(yùn)算符(1)+,-,+,-(用作前綴)(用作前綴) 乘乘/
31、除除/取余運(yùn)算符取余運(yùn)算符*,/,%加加/減運(yùn)算符減運(yùn)算符+,-賦值運(yùn)算符賦值運(yùn)算符=,*=,/=,%=,+=,-=一元運(yùn)算符(一元運(yùn)算符(2)+ -(用作后綴)(用作后綴)2.3 C#流程控制語句流程控制語句n2.3.1 布爾邏輯布爾邏輯n2.3.2 C#流程控制語句流程控制語句流程控制的兩種方法流程控制的兩種方法n分支分支 有條件地執(zhí)行代碼。條件取決于計(jì)算的結(jié)果。有條件地執(zhí)行代碼。條件取決于計(jì)算的結(jié)果。n循環(huán)循環(huán) 重復(fù)執(zhí)行相同的語句(重復(fù)執(zhí)行一定的次數(shù),重復(fù)執(zhí)行相同的語句(重復(fù)執(zhí)行一定的次數(shù),或者在滿足測試條件后停止執(zhí)行)。或者在滿足測試條件后停止執(zhí)行)。 流程控制中要用布爾邏輯來控制流程
32、的走向。流程控制中要用布爾邏輯來控制流程的走向。2.3.1 布爾邏輯布爾邏輯n布爾邏輯的基本概念布爾邏輯的基本概念n布爾運(yùn)算符布爾運(yùn)算符n布爾表達(dá)式布爾表達(dá)式n常用運(yùn)算符的優(yōu)先級常用運(yùn)算符的優(yōu)先級布爾邏輯的基本概念布爾邏輯的基本概念n布爾布爾(bool)類型可以有兩個(gè)值:類型可以有兩個(gè)值:true或或false。n布爾布爾(bool)類型常常用于存儲(chǔ)某些操作(如比較)類型常常用于存儲(chǔ)某些操作(如比較)的結(jié)果,以便操作這些結(jié)果。的結(jié)果,以便操作這些結(jié)果。n如:要根據(jù)變量如:要根據(jù)變量myVal是否小于是否小于10,來確定是否,來確定是否執(zhí)行代碼,為此,需要確定執(zhí)行代碼,為此,需要確定“myVal
33、小于小于10”的真的真假。假。若為真,若為真,“myVal小于小于10”的布爾結(jié)果為的布爾結(jié)果為true。若為假,若為假,“myVal小于小于10”的布爾結(jié)果為的布爾結(jié)果為false。布爾運(yùn)算符布爾運(yùn)算符n布爾比較運(yùn)算符:根據(jù)比較關(guān)系的真假來確定布爾比較運(yùn)算符:根據(jù)比較關(guān)系的真假來確定true還是還是false。包括:。包括:=,!,!=,=。n布爾條件運(yùn)算符:用于判斷一個(gè)或多個(gè)條件是否布爾條件運(yùn)算符:用于判斷一個(gè)或多個(gè)條件是否滿足指定的規(guī)則,主要包括:滿足指定的規(guī)則,主要包括:!,&,|。 布爾比較運(yùn)算符示例布爾比較運(yùn)算符示例nbool var1nint var2=8,var3=5;
34、nbool var1=(va2=var3);nvar1=(va2!=var3);nvar1=(va2var3);nvar1=(va2=var3);n/以上以上var1必須是布爾型,必須是布爾型,var2、var3可以是各種類型??梢允歉鞣N類型。布爾條件運(yùn)算符示例布爾條件運(yùn)算符示例nbool var1,var2=true,var3=false;nvar1=!var2;nvar1=var2&var3;/條件與條件與nvar1=var2|var3;/條件或條件或n/var1、var2、var3必須是布爾型。必須是布爾型。布爾表達(dá)式布爾表達(dá)式 布爾表達(dá)式是指結(jié)果為布爾值的表達(dá)式。如:布爾表達(dá)式
35、是指結(jié)果為布爾值的表達(dá)式。如:nbool var;nint ix=3,iy=5;nchar cx=g,cy=h;nstring sx=abc,sy=def;nvar=ixvar3)&(var4var3)|(var4var5)&(var4!=0);nConsole.WriteLine(“var1=0 var2=1”,var1,var2);n運(yùn)行結(jié)果:運(yùn)行結(jié)果:nvar1=True var2=True常用運(yùn)算符優(yōu)先級(優(yōu)先級高常用運(yùn)算符優(yōu)先級(優(yōu)先級高低)低)組組運(yùn)算符運(yùn)算符初級運(yùn)算符初級運(yùn)算符()()一元運(yùn)算符(一元運(yùn)算符(1)+,-,!,!+,-(用作前綴)(用作前綴) 乘乘/
36、除運(yùn)算符除運(yùn)算符*,/,%加加/減運(yùn)算符減運(yùn)算符+,-布爾比較運(yùn)算符(布爾比較運(yùn)算符(1),=布爾比較運(yùn)算符(布爾比較運(yùn)算符(2)=,!=布爾條件與運(yùn)算符布爾條件與運(yùn)算符&布爾條件或運(yùn)算符布爾條件或運(yùn)算符|三元運(yùn)算符三元運(yùn)算符?:賦值運(yùn)算符賦值運(yùn)算符=,*=,/=,%=,+=,-=一元運(yùn)算符(一元運(yùn)算符(2)+ -(用作后綴)(用作后綴)2.3.2 C#2.3.2 C#流程控制語句流程控制語句1.分支語句分支語句2.循環(huán)語句循環(huán)語句3.跳轉(zhuǎn)語句跳轉(zhuǎn)語句 1.1.分支語句分支語句 分支是控制下一步要執(zhí)行哪些代碼的過程,分支是控制下一步要執(zhí)行哪些代碼的過程,要跳轉(zhuǎn)到的代碼行由某個(gè)條件語句來
37、控制。這個(gè)要跳轉(zhuǎn)到的代碼行由某個(gè)條件語句來控制。這個(gè)條件語句使用布爾邏輯,將測試值和可能值進(jìn)行條件語句使用布爾邏輯,將測試值和可能值進(jìn)行比較來決定程序走向。比較來決定程序走向。 C#中的中的3種分支技術(shù)如下:種分支技術(shù)如下:n三元運(yùn)算符三元運(yùn)算符 ?:nif語句語句nswitch語句語句三元運(yùn)算符三元運(yùn)算符n使用三元運(yùn)算符是進(jìn)行比較的最簡單的方式。其語使用三元運(yùn)算符是進(jìn)行比較的最簡單的方式。其語法如下:法如下:n?:n 其中,其中,n 計(jì)算計(jì)算可得到一個(gè)布爾值,三元運(yùn)算符的可得到一個(gè)布爾值,三元運(yùn)算符的結(jié)果根據(jù)這個(gè)值來確定是結(jié)果根據(jù)這個(gè)值來確定是,還是還是。n 三元運(yùn)算符的示例如下:三元運(yùn)算符
38、的示例如下:nstring resultStr=(myInteger10)?”小于小于10”:”大于等于大于等于10”;n 三元運(yùn)算符比較適合于簡單賦值語句,根據(jù)比三元運(yùn)算符比較適合于簡單賦值語句,根據(jù)比較結(jié)果執(zhí)行大量代碼的情形應(yīng)使用較結(jié)果執(zhí)行大量代碼的情形應(yīng)使用if語句。語句。if語句語句 功能:根據(jù)測試條件布爾表達(dá)式的值(功能:根據(jù)測試條件布爾表達(dá)式的值(true或或false)選擇要執(zhí)行的語句序列。典型結(jié)構(gòu)如下:選擇要執(zhí)行的語句序列。典型結(jié)構(gòu)如下:if (if (測試條件測試條件布爾表達(dá)式布爾表達(dá)式) ) 測試條件測試條件布爾表達(dá)式為真時(shí)執(zhí)行的語句序列布爾表達(dá)式為真時(shí)執(zhí)行的語句序列 el
39、seelse 測試條件測試條件布爾表達(dá)式為假時(shí)執(zhí)行的語句序列布爾表達(dá)式為假時(shí)執(zhí)行的語句序列 注:以后,凡是一個(gè)語句序列包含多于一條的語句,注:以后,凡是一個(gè)語句序列包含多于一條的語句,就必須使用大括號就必須使用大括號 將語句序列括起來。將語句序列括起來。u常見形式有:常見形式有: 1) 單獨(dú)使用單獨(dú)使用if語句,不加語句,不加else語句語句if (if (布爾表達(dá)式布爾表達(dá)式) ) 布爾表達(dá)式為真時(shí)執(zhí)行的語句序列布爾表達(dá)式為真時(shí)執(zhí)行的語句序列 2) if語句和語句和else語句配套使用的單條件測試語句配套使用的單條件測試if (if (布爾表達(dá)式布爾表達(dá)式) ) 布爾表達(dá)式為真時(shí)執(zhí)行的語句序
40、列布爾表達(dá)式為真時(shí)執(zhí)行的語句序列 elseelse 布爾表達(dá)式為假時(shí)執(zhí)行的語句序列布爾表達(dá)式為假時(shí)執(zhí)行的語句序列 3) else 3) else塊中嵌套塊中嵌套ifif語句的多條件測試語句的多條件測試if (if (布爾表達(dá)式布爾表達(dá)式1)1) 布爾表達(dá)式布爾表達(dá)式1 1為真時(shí)執(zhí)行的語句序列為真時(shí)執(zhí)行的語句序列 else if (else if (布爾表達(dá)式布爾表達(dá)式2)2) / /注意,注意,else和和if之間有一個(gè)空格。之間有一個(gè)空格。 布爾表達(dá)式布爾表達(dá)式2 2為真時(shí)執(zhí)行的語句序列為真時(shí)執(zhí)行的語句序列 else if (else if (布爾表達(dá)式布爾表達(dá)式3)3) 布爾表達(dá)式布爾表達(dá)
41、式3 3為真時(shí)執(zhí)行的語句序列為真時(shí)執(zhí)行的語句序列 elseelse 所有條件均為假時(shí)執(zhí)行的語句序列所有條件均為假時(shí)執(zhí)行的語句序列 n/ if語句舉例語句舉例: 任意輸入一個(gè)整數(shù)任意輸入一個(gè)整數(shù)i,,先判斷合法性,先判斷合法性,再判斷再判斷i是否為是否為”1”, 為為“1”打印打印“i is one”,不,不為為”1”,打印,打印“i is not one”。nusing System;nnamespace ConsoleAppIfExamplenclass IfExamplenstatic void Main(string args)n int i;n Console.Write(i=);n
42、i=Convert.ToInt32(Console.ReadLine();n if (i=1)n n Console.WriteLine(i is one);n n else n n Console.WriteLine(i is not one);n n Console.ReadLine();n nnswitch 語句語句uswitch 語句也叫語句也叫case語句語句,可以一次將測試變量與多個(gè)可能可以一次將測試變量與多個(gè)可能值進(jìn)行比較,這種測試僅限于可能值是離散的值類型常量。值進(jìn)行比較,這種測試僅限于可能值是離散的值類型常量。uswitch語句一般形式為:語句一般形式為:switch (條件
43、表達(dá)式條件表達(dá)式) case 常量表達(dá)式常量表達(dá)式1: 語句序列語句序列1 break; case 常量表達(dá)式常量表達(dá)式2: 語句序列語句序列2 break; default: 語句序列語句序列 break; 每個(gè)每個(gè)case后的語句序列可不用后的語句序列可不用大括號大括號, 但是每個(gè)但是每個(gè)case塊的最后塊的最后一句一定要是一句一定要是break語句。語句。switchswitch語句注意事項(xiàng):語句注意事項(xiàng): a) a) 如果某個(gè)如果某個(gè)casecase塊為空,塊為空,則會(huì)從這個(gè)則會(huì)從這個(gè)casecase塊直接跳到塊直接跳到下一個(gè)下一個(gè)casecase塊上。塊上。 b)b)在一個(gè)在一個(gè)sw
44、itchswitch中,不中,不能有相同的兩個(gè)能有相同的兩個(gè)casecase標(biāo)記。標(biāo)記。 switch (條件表達(dá)式條件表達(dá)式) case 常量表達(dá)式常量表達(dá)式1: 語句序列語句序列1 break; case 常量表達(dá)式常量表達(dá)式2: 語句序列語句序列2 break; default: 語句序列語句序列 break; SwitchSwitch語句舉例語句舉例using System;namespace SwitchExample public class Program public static void Main() Console.WriteLine(一年中你最喜歡那個(gè)季節(jié)?一年中你最喜
45、歡那個(gè)季節(jié)?); string Season = Console.ReadLine(); /從鍵盤讀取用戶輸入內(nèi)容從鍵盤讀取用戶輸入內(nèi)容 Console.Write(你喜歡你喜歡0 , Season); switch (Season) /switch分支分支 case 春天春天: Console.WriteLine(這樣的天氣最適合郊游了,相信你肯定喜歡!這樣的天氣最適合郊游了,相信你肯定喜歡!); break; case 夏天夏天: Console.WriteLine(火辣的天氣,去游泳館會(huì)是一個(gè)不錯(cuò)的選擇!火辣的天氣,去游泳館會(huì)是一個(gè)不錯(cuò)的選擇!); break; case 秋天秋天: C
46、onsole.WriteLine(秋高氣爽,帶上你的家人去旅行吧!秋高氣爽,帶上你的家人去旅行吧!); break; case 冬天冬天: Console.WriteLine(白雪茫茫的,去滑雪吧,絕對刺激!白雪茫茫的,去滑雪吧,絕對刺激!); break; default: Console.WriteLine(請確認(rèn)你輸入的季節(jié)請確認(rèn)你輸入的季節(jié)); break; Console.Read(); 2.2.循環(huán)語句循環(huán)語句 循環(huán)就是重復(fù)執(zhí)行一些語句。循環(huán)語句包括:循環(huán)就是重復(fù)執(zhí)行一些語句。循環(huán)語句包括:udo-while語句語句uwhile語句語句uforeach語句語句ufor語句語句用于循
47、環(huán)次數(shù)不定的情形。用于循環(huán)次數(shù)不定的情形。用于循環(huán)次數(shù)一定的情形。用于循環(huán)次數(shù)一定的情形。do-while語句語句 do-while循環(huán)的結(jié)構(gòu)如下:循環(huán)的結(jié)構(gòu)如下: do 語句序列語句序列 while (條件條件); 注:注:while語句后面的分號是必須的。語句后面的分號是必須的。 do-while循環(huán)先執(zhí)行循環(huán)體內(nèi)的語句序列,然后進(jìn)行一循環(huán)先執(zhí)行循環(huán)體內(nèi)的語句序列,然后進(jìn)行一個(gè)布爾測試,如果測試的結(jié)果為個(gè)布爾測試,如果測試的結(jié)果為true,就繼續(xù)循環(huán)。,就繼續(xù)循環(huán)。 如:如:nint i=1;ndonn Console.WriteLine(“0”,i+);n while (i=10);例例
48、2-3 do-while循環(huán)舉例。給定當(dāng)前余額、年利率及預(yù)期余額,計(jì)算幾年循環(huán)舉例。給定當(dāng)前余額、年利率及預(yù)期余額,計(jì)算幾年后存款余額達(dá)到預(yù)期余額。后存款余額達(dá)到預(yù)期余額。ndouble balance,interestRate,targetBalance;nConsole.WriteLine(請輸入當(dāng)前余額(元)請輸入當(dāng)前余額(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(請輸入年利率:請輸入年利率:); ninterestRate=1+Convert.ToDouble(Console.ReadLin
49、e()/100.0;nConsole.WriteLine(請輸入預(yù)期余額(元):請輸入預(yù)期余額(元):);ntargetBalance=Convert.ToDouble(Console.ReadLine();nint totalYears=0;ndo n balance*=interestRate;n +totalYears;nnwhile (balancetargetBalance);nConsole.WriteLine(在在0年內(nèi),余額將達(dá)年內(nèi),余額將達(dá)1元。元。,totalYears,balance);nConsole.ReadLine();while語句語句While循環(huán)的結(jié)構(gòu)為:循環(huán)
50、的結(jié)構(gòu)為:while (條件條件) 語句序列語句序列 while循環(huán)非常類似于循環(huán)非常類似于do-while循環(huán),區(qū)別在于:循環(huán),區(qū)別在于:while循環(huán)中的布爾測試是在循環(huán)開始時(shí)進(jìn)行,循環(huán)體可能一次都循環(huán)中的布爾測試是在循環(huán)開始時(shí)進(jìn)行,循環(huán)體可能一次都不執(zhí)行,而不執(zhí)行,而do-while循環(huán)是在最后進(jìn)行布爾測試,循環(huán)體至循環(huán)是在最后進(jìn)行布爾測試,循環(huán)體至少執(zhí)行一次。如:少執(zhí)行一次。如:nint i=1;nwhile (i=10)nn Console.WriteLine(“0”,i+);n例例2-4 while循環(huán)舉例。給定當(dāng)前余額、年利率及預(yù)期余額,計(jì)算幾年后存循環(huán)舉例。給定當(dāng)前余額、年利率
51、及預(yù)期余額,計(jì)算幾年后存款余額達(dá)到預(yù)期余額。款余額達(dá)到預(yù)期余額。ndouble balance,interestRate,targetBalance;nConsole.WriteLine(請輸入當(dāng)前余額(元):請輸入當(dāng)前余額(元):);nbalance=Convert.ToDouble(Console.ReadLine();nConsole.WriteLine(請輸入年利率:請輸入年利率:); ninterestRate=1+Convert.ToDouble(Console.ReadLine()/100.0;nConsole.WriteLine(請輸入預(yù)期余額(元):請輸入預(yù)期余額(元):);
52、ntargetBalance=Convert.ToDouble(Console.ReadLine();nint totalYears=0;nwhile (balancetargetBalance)n balance*=interestRate;n +totalYears;nnConsole.WriteLine(在在0年內(nèi),余額將達(dá)年內(nèi),余額將達(dá)1元。元。,totalYears,balance);nConsole.ReadLine();foreach循環(huán)循環(huán)nforeach循環(huán)可以依次讀取集合中的每一項(xiàng),但不能修改循環(huán)可以依次讀取集合中的每一項(xiàng),但不能修改集合中的任何一項(xiàng)。集合中的任何一項(xiàng)。nforeach的語法如下:的語法如下:nforeach(類型類型 變量名變量名 in 集合集合)nn 執(zhí)行語句執(zhí)行語句;nn類型為集合元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拖拉機(jī)沖剪壓加工生產(chǎn)線操作調(diào)整工崗前環(huán)保知識考核試卷含答案
- 自然保護(hù)區(qū)巡護(hù)監(jiān)測員班組安全強(qiáng)化考核試卷含答案
- 木門窗工操作規(guī)范測試考核試卷含答案
- 化工離心分離工創(chuàng)新實(shí)踐競賽考核試卷含答案
- 海水魚類繁育工崗前安全生產(chǎn)能力考核試卷含答案
- 2025年防雷工程項(xiàng)目合作計(jì)劃書
- 2025年三聚氰胺甲醛塑料項(xiàng)目合作計(jì)劃書
- 2025年女士剃毛器項(xiàng)目發(fā)展計(jì)劃
- 2025年離合器分離軸承項(xiàng)目發(fā)展計(jì)劃
- 班班通培訓(xùn)教學(xué)
- 2026年陜西省森林資源管理局局屬企業(yè)公開招聘工作人員備考題庫及參考答案詳解1套
- 承包團(tuán)建燒烤合同范本
- 電力線通信技術(shù)
- 人工流產(chǎn)手術(shù)知情同意書
- 2025秋人教版七年級全一冊信息科技期末測試卷(三套)
- 教師三筆字培訓(xùn)課件
- 鋼鐵燒結(jié)機(jī)脫硫脫硝施工方案
- 中國醫(yī)藥行業(yè)中間體出口全景分析:破解政策難題深挖全球紅利
- 搶工補(bǔ)償協(xié)議書
- 英語A級常用詞匯
- 協(xié)調(diào)控制系統(tǒng)
評論
0/150
提交評論