C2012大學(xué)教程第3章_第1頁(yè)
C2012大學(xué)教程第3章_第2頁(yè)
C2012大學(xué)教程第3章_第3頁(yè)
C2012大學(xué)教程第3章_第4頁(yè)
C2012大學(xué)教程第3章_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

23

C#程序入門3What’sinaname?Thatwhichwecallarose

byanyothernamewouldsmellassweet.WilliamShakespeareWhenfacedwithadecision,Ialwaysask,

“Whatwouldbethemostfun?”PeggyWalker4“Takesomemoretea,”theMarchHaresaidtoAlice,veryearnestly.“I’vehadnothingyet,”Alicerepliedinanoffendedtone,“soIcan’ttakemore.”“Youmeanyoucan’ttakeless,”saidtheHatter:“it’sveryeasytotakemorethannothing.”LewisCarroll

5目標(biāo)本章將講解:用代碼而不用可視化編程技術(shù)編寫簡(jiǎn)單的C#程序從鍵盤輸入數(shù)據(jù)和向屏幕輸出數(shù)據(jù)聲明并使用各種類型的數(shù)據(jù)存儲(chǔ)和讀取內(nèi)存數(shù)據(jù)使用算術(shù)運(yùn)算符確定運(yùn)算符的執(zhí)行順序編寫判斷語(yǔ)句使用關(guān)系運(yùn)算符和相等運(yùn)算符63.1

簡(jiǎn)介3.2

一個(gè)簡(jiǎn)單的C#程序:顯示一行文本3.3

在VisualStudio中創(chuàng)建簡(jiǎn)單的程序3.4

修改C#程序3.5

用Console.Write和Console.WriteLine格式化文本3.6

另一個(gè)C#程序:數(shù)據(jù)相加3.7

內(nèi)存概念3.8

算術(shù)運(yùn)算符3.9

判斷:相等運(yùn)算符與關(guān)系運(yùn)算符3.10

(可選)ATM需求文檔73.1

簡(jiǎn)介

控制臺(tái)應(yīng)用程序(Consoleapplications)在控制臺(tái)窗口中輸入和輸出文本,在WindowsXP和WindowsVista系統(tǒng)中稱為命令提示(CommandPrompt)。8Welcome1.cs圖.3.1|顯示文本的程序聲明

Welcome1類注釋提高代碼可讀性3.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)93.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)程序員給程序文檔插入注釋。注釋提高代碼的可讀性。C#編譯器會(huì)忽略注釋,因此當(dāng)運(yùn)行程序時(shí),注釋不會(huì)讓計(jì)算機(jī)執(zhí)行任何動(dòng)作。以//

開頭的注釋叫做單行注釋(single-linecomment),因?yàn)樽⑨屧谛械哪┪簿徒Y(jié)束了。一個(gè)

//

注釋也可以在行中間開始并直到行末尾。

定界注釋(Delimitedcomments)

以定界符/*開始

并以定界符*/結(jié)束。所有包含在定界符之間的文本會(huì)被編譯器忽略。103.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)常見的編程錯(cuò)誤3.1遺忘定界注釋的某個(gè)定界符是一個(gè)語(yǔ)法錯(cuò)誤。編程語(yǔ)言的語(yǔ)法制定了以這種語(yǔ)言創(chuàng)建正確的程序規(guī)則。當(dāng)編譯器遇到違反C#語(yǔ)言規(guī)則的代碼時(shí),就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。113.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)一個(gè)

using

指令告訴編譯器到哪里去尋找程序中使用的類。預(yù)定義的類被放在命名空間——相關(guān)類的命名集合。.NET的名字空間統(tǒng)稱為.NET框架類庫(kù)。System

名字空間包含預(yù)定義Console類和其他有用的類

。123.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)錯(cuò)誤防止提示3.1如果程序中用到的類沒有用using指令指定它的名字空間,通常會(huì)造成編譯錯(cuò)誤,出現(xiàn)諸如“Thename‘Console’doesnotexistinthecurrentcontext.”的消息。如果出現(xiàn)這種錯(cuò)誤,應(yīng)檢查是否提供了合適的using指令,還要檢查using指令,還要檢查using指令中的單詞是否拼寫正確,包括大小寫字母是否正確。133.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)程序員使用空行和空字符來使程序更易于閱讀??招小⒖兆址椭票矸黄鸨环Q為空白(whitespace),空白被編譯器忽略。143.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)關(guān)鍵字Keywords(有時(shí)被稱為保留字reservedwords)是C#保留使用的,全部采用小寫字母。每一個(gè)程序至少有一個(gè)由程序員定義的類聲明classdeclaration,稱為“用戶定義類”user-definedclasses。類關(guān)鍵字引入類聲明,它的后面緊跟類的名稱。153.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)好的編程經(jīng)驗(yàn)3.1按照慣例,類名稱標(biāo)識(shí)符總是以一個(gè)大寫字母開頭,并將其后的每個(gè)單詞的首字母都大寫。16圖.3.2

|

C#關(guān)鍵字和上下文關(guān)鍵字

(部分1.)類名稱是一個(gè)標(biāo)識(shí)符identifier:一系列的字母、數(shù)字和下劃線(_)組成。不能以數(shù)字開頭,也不能包含空格。圖3.2中列出了C#關(guān)鍵字的完整清單。3.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)17圖.3.2

|

C#關(guān)鍵字和上下文關(guān)鍵字

(部分2.)在圖3.2中的上下文關(guān)鍵字被用于標(biāo)識(shí)符,但為了清晰起見,不推薦這樣做。3.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)183.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)C#是大小寫敏感

casesensitive—大小寫字母是有區(qū)別的,因此

a1

A1

是不同的(但有效)標(biāo)識(shí)符。常見的編程錯(cuò)誤3.2C#是大小寫敏感的。用錯(cuò)了標(biāo)識(shí)符的大寫和小寫字母,通常會(huì)導(dǎo)致編譯錯(cuò)誤。標(biāo)識(shí)符的前面還可以加上@

符號(hào)。這個(gè)符號(hào)表明了單詞應(yīng)當(dāng)解釋為標(biāo)識(shí)符,即使它為關(guān)鍵字。(e.g.@int).193.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)好的編程經(jīng)驗(yàn)3.2按照慣例,命名包含一個(gè)公共類的文件時(shí)應(yīng)和類同名(加上.cs擴(kuò)展名),拼寫和大小寫都一致。

這樣的命名有利于確定程序類的位置。203.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)每個(gè)類聲明的類體(body)都以一個(gè)左花括號(hào)

{開始。并以一個(gè)對(duì)應(yīng)的右花括號(hào)

}來結(jié)束類的聲明。錯(cuò)誤預(yù)防提示3.2一旦在程序中輸入了左花括號(hào){,就立即輸入右花括號(hào)}。然后將光標(biāo)重新定位到二者之間并進(jìn)行縮進(jìn),再進(jìn)行輸入。這一經(jīng)驗(yàn)有助于避免因遺漏花括號(hào)而出現(xiàn)錯(cuò)誤。好的編程經(jīng)驗(yàn)3.3在界定體的左花括號(hào)和右花括號(hào)之間,應(yīng)將每個(gè)類聲明的整個(gè)類體都縮進(jìn)一“級(jí)”。這種格式既突出了類聲明的結(jié)構(gòu),又使它更易閱讀。選擇Edit>Advanced>FormatDocument??梢宰孖DE格式化代碼。213.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)好的編程

經(jīng)驗(yàn)3.4設(shè)置愿意采用的縮進(jìn)量,然后一致地使用它。也可以使用Tab鍵來來產(chǎn)生縮進(jìn),但不同的文本編輯器的制表符長(zhǎng)度可能不同。推進(jìn)每個(gè)縮進(jìn)三個(gè)空格。在3.3中講解了如何進(jìn)行這種設(shè)置。常見的編程錯(cuò)誤3.3如果花括號(hào)不成對(duì)出現(xiàn),則是一種語(yǔ)法錯(cuò)誤。223.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)標(biāo)識(shí)符后面的圓括號(hào)Parentheses表示它是一個(gè)稱為方法的程序構(gòu)建塊

。類聲明中通常包含一個(gè)或多個(gè)方法。方法名采用與類名相同的大小寫慣例。對(duì)每個(gè)應(yīng)用程序,類中必須有一個(gè)Main方法;否則程序?qū)⒉荒苓\(yùn)行。方法能夠執(zhí)行任務(wù),并在完成任務(wù)后返回信息。關(guān)鍵字void

表示這個(gè)方法在完成任務(wù)后不返回任何信息。233.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)方法體聲明以左花括號(hào){開始,以對(duì)應(yīng)的右花括號(hào)}結(jié)束。好的編程經(jīng)驗(yàn)3.5和類聲明一樣,在界定方法體的左花括號(hào)和右花括號(hào)之間,應(yīng)將每個(gè)方法聲明的整個(gè)方法體都縮進(jìn)一級(jí)。這種格式使方法的結(jié)構(gòu)更突出,也使方法聲明更易讀。243.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)在雙引號(hào)之間的字符表示是字符串strings。

在字符串中的空白符不會(huì)被編譯器忽略。Console.WriteLine

方法實(shí)現(xiàn)在控制臺(tái)窗口中顯示一行文本。括號(hào)中的字符串是Console.WriteLine

方法的參數(shù)。Console.WriteLine

方法的作用在控制臺(tái)窗口中顯示參數(shù)(也叫輸出)。253.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)一個(gè)方法一般由一條或多條語(yǔ)句組成,執(zhí)行方法的任務(wù)。(語(yǔ)句:statements)多數(shù)語(yǔ)句以分號(hào)結(jié)束。(分號(hào):semicolon)常見的編程錯(cuò)誤3.4在語(yǔ)句的結(jié)尾省略分號(hào)是一個(gè)語(yǔ)法錯(cuò)誤。263.2

一個(gè)簡(jiǎn)單C#程序:顯示一行文本(續(xù).)錯(cuò)誤防止提示3.3當(dāng)編譯器報(bào)告語(yǔ)法錯(cuò)誤時(shí),錯(cuò)誤可能不在錯(cuò)誤消息所指的行中。首先要檢查報(bào)告錯(cuò)誤的行,如果該行沒有語(yǔ)法錯(cuò)誤,則要檢查前面的幾個(gè)行。好的編程經(jīng)驗(yàn)3.6在方法體或類聲明的后面,進(jìn)行注釋有利于提高程序的可讀性。273.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序創(chuàng)建控制臺(tái)應(yīng)用程序r選擇“文件”

File

>“新建”-“項(xiàng)目”

New

Project…顯示“新建項(xiàng)目”對(duì)話框

(Fig.

3.3)。選擇“控制臺(tái)應(yīng)用程序”Console

Application

模板。在對(duì)話框的名稱欄中,輸入Welcome1,并單擊“確定”

OK

創(chuàng)建工程。283.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)Projectname圖.3.3

|用新建工程創(chuàng)建控制臺(tái)應(yīng)用程序

工程名293.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)IDE現(xiàn)在包含了打開的控制臺(tái)應(yīng)用程序。IDE使用的代碼配色方案稱為“語(yǔ)法顏色高亮”

syntax-colorshading

,可以幫助程序員直觀地區(qū)分程序元素。303.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.4

|打開控制臺(tái)程序的IDE編輯器窗口

313.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)設(shè)置IDE顯示行號(hào),選擇“工具”

Tools

>“選項(xiàng)”

Options….在對(duì)話框中顯示(圖.

3.5),單擊對(duì)話框的左下方的“顯示所有設(shè)置”

Showallsettings

復(fù)選框。展開左邊的“文本編輯器”TextEditor的節(jié)點(diǎn)

,并選擇“所有語(yǔ)言”AllLanguages.在右側(cè),選中“行號(hào)”Linenumbers

復(fù)選框。注:由于VisualStudio版本不同,設(shè)置稍有差異。323.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.5

|修改IDE的設(shè)置333.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)設(shè)置代碼縮進(jìn)三個(gè)字符:在選項(xiàng)對(duì)話框中,展開左面板中C#節(jié)點(diǎn)并并選擇制表符。確保選中插入空格??s進(jìn)大小和制表符大小都輸入。.單擊“確定”保存設(shè)置。關(guān)閉對(duì)話框轉(zhuǎn)入編輯窗口。343.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)重命名程序文件,單擊“解決方案資源管理器”窗口中的Program.cs

文件,在屬性窗口中顯示它的屬性(圖.

3.6).改變文件名為Welcome1.cs。353.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.6

|在Properties

窗口中重命名程序文件

單擊

Program.cs

,顯示它的屬性在此處輸入Welcome.cs,重命名文件FileName

屬性屬性窗口SolutionExplorer363.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)智能感應(yīng)IntelliSense

列出類的成員,包括方法的名稱。當(dāng)輸入時(shí),VisualC#Express會(huì)高亮顯示第一個(gè)成員,輸入匹配全部字符,然后顯示工具提示包含這個(gè)成員的描述。你既可以輸入全部的成員名稱,也可以雙擊列表中成員名或按Tab鍵來完成輸入。當(dāng)智能感應(yīng)窗口顯示時(shí),按Ctrl

鍵使窗口透明以致于可以看見窗口后面的代碼。373.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.7

|

VisualC#Express.的智能感應(yīng)特點(diǎn)

鍵入的部分名稱智能感應(yīng)窗口最匹配的項(xiàng)被高亮顯示工具提示描述了被高亮顯示的項(xiàng)383.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)當(dāng)你輸入開始圓括號(hào)字符,(,在方法名之后,會(huì)顯示

參數(shù)信息ParameterInfo窗口(圖.

3.8)。這個(gè)窗口包含方法參數(shù)的信息。向下箭頭參數(shù)信息窗口向上箭頭圖.3.8

|

參數(shù)信息窗口

向上向下箭頭允許通過滾動(dòng)來加載方法393.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)保存程序,選擇“文件”

File

>“保存全部”

Save

All

顯示保存工程對(duì)話框。

在“位置”Location

文本框中,指定想要保存的目錄。選擇“為解決方案創(chuàng)建目錄”

Create

directory

for

solution

復(fù)選框并單擊“保存”Save。403.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)編譯程序,選擇“生成”

Build>“生成解決方案”

BuildSolution。運(yùn)行程序,選擇“調(diào)試”

Debug

>開始執(zhí)行StartWithoutDebugging(或按Ctrl+F5)。這樣就會(huì)調(diào)用Main方法。圖3.10顯示了程序的執(zhí)行結(jié)果,在控制臺(tái)窗口顯示

。(控制臺(tái)也就是命令窗口CommandPrompt)413.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.9

|在圖.

3.1中執(zhí)行程序.

控制臺(tái)窗口423.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)錯(cuò)誤防止提示3.4當(dāng)學(xué)習(xí)編程時(shí),有時(shí)“停止”正在運(yùn)行的程序以便

了解編譯的語(yǔ)法錯(cuò)誤信息。試圖移去圖Fig.3.1中的分號(hào)或括號(hào),然后重新編譯應(yīng)用程序,看被遺漏的錯(cuò)誤信息。433.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)當(dāng)輸入代碼時(shí),IDE通過語(yǔ)法顏色或語(yǔ)法錯(cuò)誤。語(yǔ)法錯(cuò)誤表明違反了VisualC#創(chuàng)建應(yīng)用程序的規(guī)則。當(dāng)語(yǔ)法錯(cuò)誤產(chǎn)生時(shí),IDE會(huì)用紅色標(biāo)注錯(cuò)誤,并顯示一個(gè)錯(cuò)誤描述的窗口。(圖.

3.10).443.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)圖.3.10

|

IDE中的語(yǔ)法錯(cuò)誤消息故意省略分號(hào)(語(yǔ)法錯(cuò)誤)表明語(yǔ)法錯(cuò)誤的波浪線錯(cuò)誤描述錯(cuò)誤清單窗口453.3

在VisualC#Express中創(chuàng)建一個(gè)簡(jiǎn)單的程序(續(xù).)

錯(cuò)誤防止提示3.5一個(gè)語(yǔ)法錯(cuò)誤可能導(dǎo)致在錯(cuò)誤清單窗口中出現(xiàn)多條錯(cuò)誤信息。改正一個(gè)錯(cuò)誤后,重新編譯程序時(shí)可能會(huì)消除多個(gè)后續(xù)的錯(cuò)誤消息。因此,看到并知道如何修改一個(gè)錯(cuò)誤時(shí),應(yīng)先改正它并重新編譯。這樣可能消除多個(gè)其他的錯(cuò)誤信息。46圖3.11所示的Welcome2類使用了兩條語(yǔ)句,產(chǎn)生如前面的例子圖

3.11所示相同的輸出。與WriteLine不同,Console類Write方法不能將光標(biāo)的位置定位到控制臺(tái)程序屏幕下一行的開始。3.4

修改C#程序47圖.3.11|用多條語(yǔ)句顯示一行文本.Write

方法不會(huì)將光標(biāo)移動(dòng)到新的一行3.4

修改C#程序(續(xù).)Welcome2.cs48通過使用新行符可以用單條語(yǔ)句顯示多行文本。與空格符和制表符一樣,新行符也是空白符。圖3.12的應(yīng)用程序輸出4行文本,用新行符表明什么時(shí)候開始新行。OutlineWelcome3.cs圖.3.12|用單條語(yǔ)句顯示多行文本493.4

修改C#程序(續(xù).)反斜杠backslash(\)被稱為轉(zhuǎn)義符escapecharacter,并且它是轉(zhuǎn)義序列escape-sequence的一個(gè)字符。轉(zhuǎn)義序列\(zhòng)n表明新行符newlinecharacter。圖

3.13列出了幾個(gè)常用的轉(zhuǎn)義序列并描述了在控制臺(tái)窗口中如何輸出。503.4

修改C#程序(續(xù).)Fig.3.16

|

Somecommonescapesequences.圖.3.13|一些常用的轉(zhuǎn)義序列S51Console的Write和WriteLine方法的功能就是現(xiàn)實(shí)格式化的數(shù)據(jù)。圖3.14展示了另外一種方法來使用WriteLine方法。OutlineWelcome4.cs圖.3.14|用字符串格式化方式顯示多行文本.WriteLine方法的第一個(gè)參數(shù)是格式化字符串formatstring

,可以包含預(yù)置文本fixedtext

和格式項(xiàng)formatitems。3.5

用Console.Write

Console.WriteLine

格式化文本523.5

用Console.Write和Console.WriteLine

格式化文本當(dāng)一個(gè)方法需要多個(gè)實(shí)參時(shí),參數(shù)用逗號(hào)分隔。(commas:逗號(hào))好的編程經(jīng)驗(yàn)3.7在每個(gè)實(shí)參列表的逗號(hào)之后加一個(gè)空格(,)可以提高程序的可讀性。 大語(yǔ)句可以分成多行,但是存在一定的限制。常見的編程錯(cuò)誤3.5將一條語(yǔ)句中的標(biāo)識(shí)符或字符串從中間斷行分開是一個(gè)語(yǔ)法錯(cuò)誤。533.5

用Console.Write和Console.WriteLine

格式化文本

WriteLine方法的第一個(gè)參數(shù)是一個(gè)格式化字符串formatstring

,由固定文本fixedtext

和格式項(xiàng)

formatitems組成.每個(gè)格式項(xiàng)都是一個(gè)值的占位符placeholder,WriteLine相對(duì)應(yīng)的其它額外的參數(shù):{0}是第一個(gè)額外的參數(shù)占位符。

{1}是第二個(gè)額外的參數(shù)占位符,等等。格式項(xiàng)也可以包含可選的格式信息。543.6

另一個(gè)C#程序:整數(shù)相加程序?qū)?shù)值和其他數(shù)據(jù)保存在計(jì)算機(jī)內(nèi)存中,并通過稱為變量variables的元素訪問這些數(shù)據(jù)。變量variable

存放在內(nèi)存中,存儲(chǔ)在變量中在以后的程序中可以被使用。變量聲明語(yǔ)句

variabledeclarationstatement(也叫定義

declaration)界定了變量的名稱和類型一個(gè)變量的名稱使程序訪問存儲(chǔ)在內(nèi)存中的變量——名稱可以是任何有效的標(biāo)識(shí)。

一個(gè)變量的類型界定了在類存中存儲(chǔ)什么類型的信息。55三個(gè)變量聲明為整形intOutlineAddition.cs(1of2)圖.3.15|顯示通過鍵盤輸入的兩個(gè)數(shù)的值.(Part1of2).Console.ReadLine()讀取用戶輸入的信息,用

Convert.ToInt32

轉(zhuǎn)換成為整形值。將三個(gè)變量聲明為整形用戶提示信息56OutlineAddition.cs(2of2)圖.3.15|顯示通過鍵盤輸入的兩個(gè)數(shù)的值(Part2of2).573.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)int

變量類型存儲(chǔ)整形integer

值(數(shù)字如7,–11,0

31914).float,double

decimal

類型指定實(shí)數(shù)(帶有小數(shù)點(diǎn)的十進(jìn)制數(shù))。char

類型表示單個(gè)字符。這些類型成為簡(jiǎn)單類型simpletypes。簡(jiǎn)單類型的名稱是關(guān)鍵字因而必須是小寫字母

。583.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)變量聲明語(yǔ)句可以被分成幾行,變量名用逗號(hào)分隔。(例如.,一個(gè)變量名的逗號(hào)分隔列表)。相同類型的變量可以聲明在一行或多行中。好的編程經(jīng)驗(yàn)3.8在單獨(dú)的行中聲明每個(gè)變量。這種格式變量聲明使得很容易插入注釋。593.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)好的編程經(jīng)驗(yàn)3.9選擇有意義的變量名,可使代碼具有自說明性,也就是說只需閱讀代碼本身就可以理解它的功能,而無需查看手冊(cè)或注釋。好的編程經(jīng)驗(yàn)3.10按照約定,變量名稱的第一個(gè)字母要小寫,而后續(xù)所有單詞都以一個(gè)大寫字母開始,這種命名慣例稱為小寫駝峰規(guī)則。(camelcasing:駝峰)603.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)Console的ReadLine方法等待用戶用鍵盤輸入字符并按“回車”鍵。ReadLine返回下一個(gè)用戶輸入。Convert類的ToInt32方法轉(zhuǎn)換這個(gè)字符串為int類型的數(shù)據(jù)。ToInt32

返回int

值,代表用戶的輸入。613.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)一個(gè)值用賦值符號(hào)存儲(chǔ)在變量中。assignmentoperator:賦值符號(hào)(=)符號(hào)“=”被稱為二元運(yùn)算符binaryoperator,因?yàn)樗鼘?duì)兩塊信息或操作數(shù)進(jìn)行操作。賦值語(yǔ)句assignmentstatement將一個(gè)值賦給變量。賦值運(yùn)算符右側(cè)任何內(nèi)容總是在賦值執(zhí)行之前計(jì)算的。好的編程習(xí)慣3.11在二元運(yùn)算符的兩邊插入空格可以使它更突出并使代碼更可讀。623.6

另一個(gè)C#程序:整數(shù)相加(續(xù).)語(yǔ)句中與值相關(guān)的任何部分都是表達(dá)式。number1

+

number2的表達(dá)式的值就是它們的和。表達(dá)式Console.ReadLine()的值就是用戶輸入的字符串。計(jì)算可以在輸出語(yǔ)句中執(zhí)行。633.7

內(nèi)存概念變量名實(shí)際上都對(duì)應(yīng)于計(jì)算機(jī)中內(nèi)存的某個(gè)位置。每個(gè)變量都具有名稱、類型、大小和值。在

3.16,計(jì)算機(jī)會(huì)將這個(gè)整數(shù)值45放入位置number1。圖.3.16

|展示變量

number1的名稱和值的內(nèi)存位置.

643.7

內(nèi)存概念(續(xù).)在圖.

3.17,72

被放置在number2.圖.3.17

|保存變量number1

和number2的值后的內(nèi)存位置.653.7

內(nèi)存概念(續(xù).)在sum

被計(jì)算后,內(nèi)存應(yīng)如圖.

3.18.圖.3.18

|計(jì)算并保存變量

number1

number2的和之后的內(nèi)存位置.663.7

內(nèi)存概念(續(xù).)當(dāng)一個(gè)值被放入內(nèi)存位置時(shí),這個(gè)值替換同一位置以前的,并且前面的值會(huì)丟失。當(dāng)從內(nèi)存中讀值時(shí),過程是非破壞性的nondestructive。

67圖.3.19

|

算術(shù)運(yùn)算符算術(shù)運(yùn)算符arithmeticoperators被匯總在圖.

3.19。圖.

3.19的操作運(yùn)算符是二元運(yùn)算符3.8

算術(shù)運(yùn)算符683.8

算術(shù)運(yùn)算符(續(xù).)整除Integerdivision產(chǎn)生一個(gè)整數(shù)商—整數(shù)后面的任何小數(shù)都直接刪除而不進(jìn)行四舍五入。C#提供了余數(shù)運(yùn)算符remainderoperator%,它產(chǎn)生整除后的余數(shù)。余數(shù)操作大多數(shù)用在整數(shù)操作,但是也可以用于浮點(diǎn)數(shù)floats,雙精度數(shù)doubles,和小數(shù)decimals.括號(hào)被用在C#表達(dá)式中同樣也用在代數(shù)表達(dá)式中。假如一個(gè)表達(dá)式包含嵌套括號(hào)nestedparentheses,最內(nèi)層的括號(hào)表達(dá)式優(yōu)先計(jì)算。69圖.3.20

|

算術(shù)運(yùn)算符的優(yōu)先級(jí)算術(shù)運(yùn)算符根據(jù)運(yùn)算符優(yōu)先級(jí)operatorprecedence規(guī)則來計(jì)算,如下的代數(shù)運(yùn)算符也遵循優(yōu)先級(jí)規(guī)則。(圖.

3.20).3.8

算術(shù)運(yùn)算符(續(xù).)703.8

算術(shù)運(yùn)算符(續(xù).)下面語(yǔ)句中圓圈中的數(shù)字表示C#執(zhí)行操作的順序。

乘法、求余和除法運(yùn)算會(huì)首先按從左到右的順序執(zhí)行(即它們的結(jié)合律是從左到右的),因?yàn)榕c加法和減法相比,它們具有更高的優(yōu)先級(jí)。然后進(jìn)行加法和減法運(yùn)算。這些運(yùn)算是從左到右的。713.8

算術(shù)運(yùn)算(續(xù).)為了更好地理解運(yùn)算符優(yōu)先級(jí)的規(guī)則,考慮下面這個(gè)二次多項(xiàng)式second-degreepolynomial

(y=ax2+bx+c):723.8

算術(shù)運(yùn)算(續(xù).)在代數(shù)式中,為了使代碼更加清楚加入非必要的括號(hào)是可接受的(redundant:不需要的)。前面的賦值語(yǔ)句可以用括號(hào)來強(qiáng)調(diào)它的項(xiàng),如下所示:y=(a*x*x)+(b*x)+c;

733.8

算術(shù)運(yùn)算符(續(xù).)圖.3.21

|二次多項(xiàng)式中的求值.743.9

判斷:相等運(yùn)算符與關(guān)系運(yùn)算符Fig.3.25

|

Equalityandrelationaloperators.(Part1of2.)條件就是一個(gè)結(jié)果為真或假的表達(dá)式。條件語(yǔ)句可以由相等運(yùn)算符equalityoperators(==and!=)和關(guān)系運(yùn)算符relationaloperators(>,<,>=and<=)構(gòu)成,如圖.

3.22.圖.3.25|相等運(yùn)算符和關(guān)系運(yùn)算符.(Part1of2)753.9

判斷:相等運(yùn)算符與關(guān)系運(yùn)算符(續(xù).)Fig.3.25

|

Equalityandrelationaloperators.(Part2of2.)圖.3.22|相等運(yùn)算符和關(guān)系運(yùn)算符(Part2of2)763.9

判斷:相等運(yùn)算符與關(guān)系運(yùn)算符(續(xù).)常見的編程錯(cuò)誤3.6混淆相等運(yùn)算符==和賦值運(yùn)算符=

,會(huì)導(dǎo)致邏輯錯(cuò)誤和語(yǔ)法錯(cuò)誤。這個(gè)相等運(yùn)算符表示,而賦值運(yùn)算符相當(dāng)于“獲得”或“獲得某個(gè)值”。為了避免混淆,有人講這個(gè)相等運(yùn)算符讀作“雙等于”或“等于等于”。77圖

3.26中使用6個(gè)if語(yǔ)句比較用戶輸入的兩個(gè)整數(shù)。OutlineComparison.cs(1of3)圖.3.26|用if語(yǔ)句、相等運(yùn)算符和關(guān)系運(yùn)算符比較整數(shù)(Part1of3).78Comparenumber1andnumber2forequality.OutlineComparison.cs(2of3)Fig.3.26|用if語(yǔ)句、相等運(yùn)算符和關(guān)系運(yùn)算符比較整數(shù)

(Part2of3).79OutlineComparison.cs(3of3)圖.3.26|用if語(yǔ)句、相等運(yùn)算符和關(guān)系運(yùn)算符比較整數(shù)

(Part3of3).803.9

判斷:相等運(yùn)算符與關(guān)系運(yùn)算符(續(xù).)如果if條件語(yǔ)句為真時(shí),那么與if相關(guān)的語(yǔ)句將執(zhí)行。

if語(yǔ)句總是以if關(guān)鍵字開頭,后接用圓括號(hào)括起來的條件。

if

語(yǔ)句的語(yǔ)句體總是一條語(yǔ)句。常見的編程錯(cuò)誤3.7遺忘if語(yǔ)句的左括號(hào)或右括號(hào)是一種語(yǔ)法錯(cuò)誤———圓括號(hào)是必

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論