




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
下一頁VisualC#程式設(shè)計(jì)教程
上一頁第1章程式設(shè)計(jì)語言與程式設(shè)計(jì)方法1.1程式設(shè)計(jì)語言人們使用電腦處理問題時(shí),與電腦交換資訊所使用的語言叫電腦語言,也就是程式設(shè)計(jì)語言。它是人為地設(shè)計(jì)而成的約定資訊。章節(jié)目錄上一頁下一頁1.1.1機(jī)器語言機(jī)器語言是電腦能執(zhí)行的指令代碼,這種語言是由若干0和1的序列組成的指令,也就是人們常說的二進(jìn)位代碼。用機(jī)器語言設(shè)計(jì)的程式,稱為機(jī)器語言程式。這是一種最低級(jí)的電腦語言程式。章節(jié)目錄上一頁下一頁1.1.2組合語言
使用一種比較直觀、便於記憶的指令符號(hào)來代替二進(jìn)位數(shù)字的機(jī)器指令代碼,這就是組合語言。組合語言的每條指令通常使用英文單詞的縮寫形式表示,也叫助記符。組合語言需用一個(gè)專門的程式將其轉(zhuǎn)換為機(jī)器指令代碼,這個(gè)負(fù)責(zé)轉(zhuǎn)換的程式叫組合語言程式。章節(jié)目錄上一頁下一頁1.1.3高級(jí)語言
高級(jí)語言接近人們熟悉的自然語言,高級(jí)語言與具體的電腦指令系統(tǒng)沒有直接關(guān)係,因此用高級(jí)語言設(shè)計(jì)的程式可以在各種類型的電腦上運(yùn)行。
必須將高級(jí)語言程式轉(zhuǎn)換為機(jī)器語言程式,才能在電腦上得以執(zhí)行,這種轉(zhuǎn)換的過程叫“翻譯”。翻譯分解釋和編譯,在“翻譯”過程中會(huì)自動(dòng)檢查根源程式中的語法錯(cuò)誤。章節(jié)目錄上一頁下一頁1.2演算法
1.2.1演算法的概念
所謂演算法,是指為解決一個(gè)問題而採取的方法和步驟,或者說是解題步驟的精確描述。廣義地說,處理任何問題都有一個(gè)“演算法”問題。電腦演算法,即電腦能執(zhí)行的演算法。
電腦的演算法可分為兩大類:數(shù)值運(yùn)算演算法和非數(shù)值運(yùn)算演算法。
章節(jié)目錄上一頁下一頁1.2.2演算法的表示
1.用自然語言表示演算法
可以用人們?nèi)粘I钪惺褂玫恼Z言即自然語言來表示演算法,用自然語言表示演算法的好處是人人都懂,人人都會(huì)。
但是,自然語言表示的演算法容易非常冗長,有時(shí)會(huì)產(chǎn)生“二義性”。
章節(jié)目錄上一頁下一頁2.用流程圖表示演算法
起止框判斷框處理框輸入輸出框流程線連接點(diǎn)圖1-1流程圖符號(hào)用流程線將各種操作圖符號(hào)連接在一起就構(gòu)成了一個(gè)完整的演算法流程圖。這種流程圖稱為傳統(tǒng)流程圖。
章節(jié)目錄上一頁下一頁N-S流程圖中,完全去掉了流程線。全部演算法寫在一個(gè)大矩形框中,在某一矩形框中還可以包含一些屬於它的小矩形框。這種流程圖又稱為盒圖。
章節(jié)目錄上一頁下一頁章節(jié)目錄上一頁下一頁
傳統(tǒng)流程圖
N-S流程圖1.3程式設(shè)計(jì)方法
1.3.1結(jié)構(gòu)化程式設(shè)計(jì)方法
結(jié)構(gòu)化程式設(shè)計(jì)方法是一種傳統(tǒng)的程式設(shè)計(jì)方法。結(jié)構(gòu)化程式設(shè)計(jì)方法從編程思想上要求自頂向下,逐步求精,從程式的具體結(jié)構(gòu)上要求程式是模組化,要求程式語言中有直接實(shí)現(xiàn)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和迴圈結(jié)構(gòu)這三種基本結(jié)構(gòu)的語句,要求程式代碼由三種基本結(jié)構(gòu)組成,複雜的結(jié)構(gòu)應(yīng)該由基本結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn),整個(gè)程式或程式中的模組或控制結(jié)構(gòu)只有一個(gè)入口和一個(gè)出口。
章節(jié)目錄上一頁下一頁1.順序結(jié)構(gòu)
章節(jié)目錄上一頁下一頁ABAB2.選擇結(jié)構(gòu)
章節(jié)目錄上一頁下一頁3.迴圈結(jié)構(gòu)
章節(jié)目錄上一頁下一頁當(dāng)P為真(是)
A1.3.2面向?qū)ο蟪淌皆O(shè)計(jì)方法
在程式的設(shè)計(jì)中,演算法總是與特定的數(shù)據(jù)結(jié)構(gòu)密切相關(guān)的,演算法含有對(duì)數(shù)據(jù)結(jié)構(gòu)的訪問,特定的演算法只適用於特定的數(shù)據(jù)結(jié)構(gòu),因此演算法與數(shù)據(jù)結(jié)構(gòu)在編程中應(yīng)該是一個(gè)密不可分的整體,這個(gè)整體叫對(duì)象。面向?qū)ο蟮某淌皆O(shè)計(jì)通過類、對(duì)象、繼承、多態(tài)等機(jī)制形成一個(gè)完善的編程體系。面向?qū)ο蟮某淌皆O(shè)計(jì)多採用可視化的方式。章節(jié)目錄上一頁下一頁1.類和對(duì)象可以把類比作一種藍(lán)圖,而對(duì)象則是根據(jù)藍(lán)圖所創(chuàng)建的實(shí)例,可以把類比作生產(chǎn)模具,而對(duì)象則是由這種模具產(chǎn)生的實(shí)例(產(chǎn)品)。所以人們又把對(duì)象叫做類的實(shí)例。類是對(duì)事物的定義,而對(duì)象則是該事物本身。章節(jié)目錄上一頁下一頁2.對(duì)象的屬性、事件和方法(1)對(duì)象的屬性
C#中的對(duì)象屬性可以看作是表現(xiàn)對(duì)象特徵的數(shù)據(jù)的擴(kuò)展。在面向?qū)ο蟮木幊讨?,控件?duì)象的常見屬性有文本(Text)、背景色(BackColor)、字體大小(Font)、是否可見(Visible)等。
(2)對(duì)象的事件
所謂事件(Event),是預(yù)先定義好的、能夠被對(duì)象識(shí)別的動(dòng)作。如單擊(Click)事件。章節(jié)目錄上一頁下一頁
章節(jié)目錄上一頁下一頁
2.Microsoft中間語言(MSIL)和JIT即時(shí)編譯
在VisualStudio.NET環(huán)境中,各種編程語言編譯器負(fù)責(zé)完成編譯工作的第一步,即把源代碼轉(zhuǎn)換為一種中間代碼(MicrosoftIntermediateLanguage,MSIL)。
MSIL是一種非常接近機(jī)器語言的代碼,但還不能在電腦上運(yùn)行,還要通過第二步編譯工作將MSIL變?yōu)檎嬲臋C(jī)器語言,這個(gè)工作由即時(shí)編譯器(Just-In_time,JIT)完成。
章節(jié)目錄上一頁下一頁2.1VisualStdio.Net簡介
2.2.1起始頁
1.專案
2.聯(lián)機(jī)資源
(1)開始 (5)聯(lián)機(jī)搜索
(2)新增功能 (6)下載
(3)網(wǎng)上社區(qū) (7)XMLWebservices(4)標(biāo)題新聞 (8)Web宿主
章節(jié)目錄上一頁下一頁
2.2.2設(shè)計(jì)器視圖與代碼視圖設(shè)計(jì)器視圖與代碼視圖是程式設(shè)計(jì)最常用的兩個(gè)子窗口。設(shè)計(jì)器視圖用來設(shè)計(jì)Windows窗體或Web窗體,代碼視圖用於設(shè)計(jì)程式源代碼。在設(shè)計(jì)器視圖中可以為Windows或Web介面添加控件。代碼視圖實(shí)質(zhì)上是一個(gè)純文本編輯器,在該視圖中可以進(jìn)行通常的文本編輯操作,如選定、複製、移動(dòng)、撤銷、恢復(fù)等。
章節(jié)目錄上一頁下一頁
2.2.3解決方案資源管理器與類視圖
1.解決方案資源管理器
使用VisualStudio.NET開發(fā)的每一個(gè)應(yīng)用程式叫解決方案,每一個(gè)解決方案可以包含一個(gè)或多個(gè)專案。一個(gè)專案通常是一個(gè)完整的程式模組,一個(gè)專案可以有多個(gè)項(xiàng)?!敖鉀Q方案資源管理器”子窗口顯示VisualStudio.NET解決方案的樹型結(jié)構(gòu)。在“解決方案資源管理器”中可以流覽組成解決方案的所有專案和每個(gè)專案中的檔,可以對(duì)解決方案的各元素進(jìn)行組織和編輯。
章節(jié)目錄上一頁下一頁
2.類視圖“類視圖”以樹型結(jié)構(gòu)顯示VisualStudio.NET當(dāng)前專案中的類和類型的層次資訊。在“類視圖”中,可以對(duì)類的層次結(jié)構(gòu)流覽、組織和編輯。如果雙擊“類視圖”中的某一個(gè)類名稱,將打開該類定義的代碼視圖,並定位在該類定義的開始處,如果雙擊類中的某一成員,將打開該類定義的代碼視圖,並定位在該成員聲明處。
章節(jié)目錄上一頁下一頁
2.2.4屬性與動(dòng)態(tài)幫助
1.屬性“屬性”子窗口用於設(shè)置解決方案中各個(gè)子項(xiàng)的屬性,當(dāng)選擇設(shè)計(jì)器視圖、解決方案、類視圖中的某一子項(xiàng)時(shí),“屬性”子窗口將以兩列表格的形式顯示該子項(xiàng)的所有屬性。單擊“事件”按鈕,窗口將顯示被選擇窗體或控件的事件列表,
章節(jié)目錄上一頁下一頁
2.動(dòng)態(tài)幫助“動(dòng)態(tài)幫助”對(duì)用戶當(dāng)前操作提供相關(guān)的幫助主題列表。當(dāng)用戶在VisualStudio.NET環(huán)境中進(jìn)行某一項(xiàng)操作時(shí),“動(dòng)態(tài)幫助”將搜索MSDN庫(MicrosoftDeveloperNetwork),查找與該操作相關(guān)的幫助主題並把它認(rèn)為可能最有用的主題列在第一位。單擊一個(gè)鏈接後,默認(rèn)情況下此主題將會(huì)顯示在VisualStudio.NET窗口中。當(dāng)在代碼窗口中編輯源代碼時(shí),“動(dòng)態(tài)幫助”窗口會(huì)顯示正在輸入的關(guān)鍵字和類的幫助主題。
章節(jié)目錄上一頁下一頁
2.2.5工具箱與伺服器資源管理器
1.工具箱“工具箱”用於向Windows應(yīng)用程式或Web應(yīng)用程式添加控件?!肮ぞ呦洹笔褂眠x項(xiàng)卡分類管理其中的控件,打開“工具箱”將顯示VisualStudio專案中使用的各個(gè)不同的控件列表。根據(jù)當(dāng)前正在使用的設(shè)計(jì)器或編輯器,“工具箱”中可用的選項(xiàng)卡和控件會(huì)有所變化。
章節(jié)目錄上一頁下一頁
2.伺服器資源管理器“伺服器資源管理器”是VisualStudio.NET的伺服器管理控制臺(tái)。使用伺服器資源管理器可以打開數(shù)據(jù)連接,登錄伺服器,流覽它們的資料庫和系統(tǒng)服務(wù)??梢詫⒐芾砥髦械膶?duì)象從伺服器資源管理器拖放到VisualStudio.NET設(shè)計(jì)器上。這將創(chuàng)建新的數(shù)據(jù)組件,這些組件預(yù)配置為引用所拖放的對(duì)象。
章節(jié)目錄上一頁下一頁
2.2.6子窗口的操作
在主區(qū)域顯示的窗口,以選項(xiàng)卡的形式疊放在一起。用右上角關(guān)閉按鈕關(guān)閉當(dāng)前窗口。主區(qū)域周圍的窗口,有停靠與浮動(dòng)兩種情況,??坑钟须[藏與固定顯示兩種狀態(tài),這兩種狀態(tài)通過圖釘按鈕控制。
章節(jié)目錄上一頁下一頁
2.2.7使用VisualStudio.NET的幫助
1.MSDN幫助
(1)目錄
(2)索引
(3)搜索
(4)收藏夾2.智能感知
動(dòng)態(tài)顯示成員列表
動(dòng)態(tài)顯示該方法功能和不同用法
章節(jié)目錄上一頁下一頁
2.3窗體對(duì)象與控件對(duì)象
2.3.1窗體對(duì)象
1.窗體的結(jié)構(gòu)
2.窗體的屬性
Name(名稱)BackColor(背景色)BackgroundImage(背景圖像)Enabled(可用)Font(字體)
章節(jié)目錄上一頁下一頁ForeColor(前景色)Location(位置)Locked(鎖定)MaximizeBox(最大化按鈕)MinimizeBox(最小化按鈕)Opacity(透明)Size(尺寸)Text(文本)WindowState(窗口狀態(tài))
章節(jié)目錄上一頁下一頁3.窗體的方法CenterToScreen()方法Close()方法Hide()方法Show()方法調(diào)用方法的一般格式:對(duì)象名.方法名(參數(shù)列表);靜態(tài)方法調(diào)用的一般格式:類名.靜態(tài)方法名(參數(shù)列表);
章節(jié)目錄上一頁下一頁
4.窗體事件Activated事件Click事件Closed事件GotFocus事件Load事件
章節(jié)目錄上一頁下一頁2.3.2幾種常用控件
1.添加與編輯控件
(1)添加控件
(2)選擇控件(3)調(diào)整控件的位置與大小
(4)控件佈局
章節(jié)目錄上一頁下一頁
2.按鈕按鈕(Button)控件是應(yīng)用程式中使用最多的控件對(duì)象之一,常用來接收用戶的操作資訊,激發(fā)相應(yīng)的事件。按鈕是用戶與程式交互的最簡便的方法。
3.標(biāo)籤標(biāo)籤(Label)控件主要功能是輸出資訊,可以用來標(biāo)識(shí)其他無法顯示標(biāo)題的控件,也可以向用戶顯示相關(guān)資訊。
章節(jié)目錄上一頁下一頁4.文本框
文本框中的Text屬性不象窗體對(duì)象與標(biāo)籤對(duì)象那樣是控件對(duì)象的標(biāo)題,而是文本框中的內(nèi)容。
(1)特有屬性HideSelection(隱藏選擇)Lines(行)MaxLength(最大長度)Multiline(多行)
章節(jié)目錄上一頁下一頁
PasswordChar(密碼字元)ReadOnly(只讀)SelectedText(選定的文本)SelectionLength(選擇長度)TextLength(文本框長度)WordWrap(文本換行)
章節(jié)目錄上一頁下一頁
(2)操作文本的方法
AppendText(追加文本)方法Clear(清除)方法Copy(拷貝)方法Cut(剪切)方法Paste(粘貼)方法SelectAll(全選)方法
章節(jié)目錄上一頁下一頁
2.4應(yīng)用程式開發(fā)的一般步驟
2.4.1創(chuàng)建控制臺(tái)應(yīng)用程式1.新建專案2.編寫代碼3.運(yùn)行調(diào)試程式4.保存程式
章節(jié)目錄上一頁下一頁
2.4.2創(chuàng)建Windows應(yīng)用程式
1.新建專案2.添加控件和設(shè)置控件屬性(1)添加控件(2)修改屬性
3.編寫代碼
4.運(yùn)行調(diào)試程式
5.保存程式
章節(jié)目錄上一頁下一頁2.5VisualStudio2005簡介
介面
窗體設(shè)計(jì)章節(jié)目錄上一頁下一章代碼設(shè)計(jì)章節(jié)目錄上一頁下一章工具欄章節(jié)目錄上一頁下一章
章節(jié)目錄上一頁下一頁2.命名空間命名空間既是VisualStudio.NET提供系統(tǒng)資源的分層組織方式,也是分層組織程式的方式。因此,命名空間有兩種,一種是系統(tǒng)命名空間,一種是用戶自定義命名空間。系統(tǒng)命名空間使用using關(guān)鍵字導(dǎo)入,System是VisualStudio.NET中的最基本的命名空間,在創(chuàng)建專案時(shí),VisualStudio.NET平臺(tái)都會(huì)自動(dòng)生成導(dǎo)入該命名空間,並且放在程式代碼的起始處。
章節(jié)目錄上一頁下一頁3.類和方法C#中,必須用類來組織程式的變數(shù)與方法。C#要求每個(gè)程式必須且只能有一個(gè)“Main”方法?!癕ain”方法必須放在某一個(gè)類中?!癕ain”方法是應(yīng)用程式的入口。4.語句語句就是C#應(yīng)用程式中執(zhí)行操作的指令。C#中的語句必須用分號(hào)“;”結(jié)束。可以在一行中書寫多條語句,也可以將一條語句書寫在多行上。
章節(jié)目錄上一頁下一頁5.大括弧在C#中,括弧“{”和“}”是一種範(fàn)圍標(biāo)誌,是組織代碼的一種方式,用於標(biāo)識(shí)應(yīng)用程式中邏輯上有緊密聯(lián)繫的一段代碼的開始與結(jié)束。大括弧可以嵌套,以表示應(yīng)用程式中的不同層次。
章節(jié)目錄上一頁下一頁3.1.2C#程式的格式
1.縮進(jìn)與空格縮進(jìn)用於表示代碼的結(jié)構(gòu)層次,這在程式中不是必須的,但是縮進(jìn)可以清晰地表示程式的結(jié)構(gòu)層次,在程式設(shè)計(jì)中應(yīng)該使用統(tǒng)一的縮進(jìn)格式書寫代碼??崭裼袃煞N作用,一種是語法要求,必須遵守,一種是為使語句不至於太擁擠。例如:intia=3;
章節(jié)目錄上一頁下一頁2.字母大小寫C#中的字母可以大小寫混合,但是必須注意的是,C#把同一字母的大小寫當(dāng)作兩個(gè)不同的字元對(duì)待,如,大寫“A”與小寫“a”對(duì)C#來說,是兩個(gè)不同的字元。3.注釋C#中的注釋基本有兩種,一是單行注釋,一是多行注釋。單行注釋以雙斜線“//”開始,不能換行。多行注釋以“/*”開始,以“*/”結(jié)束,可以換行。
章節(jié)目錄上一頁下一頁3.2基本數(shù)據(jù)類型
3.2.1數(shù)值類型
1.整數(shù)類型整數(shù)類型又有有符號(hào)整數(shù)與無符號(hào)整數(shù)。有符號(hào)整數(shù)可以帶正負(fù)號(hào),無符號(hào)整數(shù)不需帶正負(fù)號(hào),默認(rèn)為正數(shù)。有符號(hào)整數(shù)包括sbyte(符號(hào)位元組型)、short(短整型)、int(整型)、long(長整型)。無符號(hào)整數(shù)包括byte(位元組型)、ushort(無符號(hào)短整型)、uint(無符號(hào)整型)、ulong(無符號(hào)長整型)。
章節(jié)目錄上一頁下一頁2.實(shí)數(shù)類型實(shí)數(shù)類型包括float(單精確度浮點(diǎn)型)、double(雙精度浮點(diǎn)型)、decimal(十進(jìn)位型)。3.2.2字元類型1.Unicode字元集Unicode是一種重要的通用字元編碼標(biāo)準(zhǔn)是繼ASCII字元碼後的一種新字元編碼,如UTF-16允許用16位字元組合為一百萬或更多的字元。C#支持Unicode字元集。
章節(jié)目錄上一頁下一頁2.char(字元型)char(字元型):數(shù)據(jù)範(fàn)圍是0~65535之間的Unicode字元集中的單個(gè)字元,佔(zhàn)用2個(gè)位元組。char(字元型)表示無符號(hào)16位整數(shù),char(字元型)的可能值集與Unicode字元集相對(duì)應(yīng)。3.string(字串型)string(字串型):指任意長度的Unicode字元序列,佔(zhàn)用位元組根據(jù)字元多少而定。string(字串型)表示包括數(shù)字與空格在內(nèi)的若干個(gè)字元序列,允許只包含一個(gè)字元的字串,甚至可以是不包含字元的空字元串。
章節(jié)目錄上一頁下一頁3.2.3布爾類型和對(duì)象類型bool(布爾型):表示布爾邏輯量。bool(布爾型)數(shù)據(jù)範(fàn)圍是“true”(真)和“false”(假)。bool(布爾型)佔(zhàn)用一個(gè)位元組。bool(布爾型)的值“true”(真)和“false”是關(guān)鍵字。object(對(duì)象型):可以表示任何類型的值,其佔(zhàn)用位元組視具體表示的數(shù)據(jù)類型而定。object(對(duì)象型)是所有其他類型的最終基類。C#中的每種類型都是直接或間接從object類型派生的。
章節(jié)目錄上一頁下一頁3.3變數(shù)與常量
3.3.1變數(shù)
1.變數(shù)命名規(guī)則在C#中,變數(shù)命名規(guī)則如下:①
變數(shù)名的第一個(gè)字元必須是字母(包括漢字)或下劃線,其餘字元必須是字母(包括漢字)、數(shù)字或下劃線。②
變數(shù)名不能是C#的關(guān)鍵字或庫函數(shù)名。例如,sum,_S,都是合法的變數(shù)名,而int,2A,NumberOfStudent是非法變數(shù)名。章節(jié)目錄上一頁下一頁2.聲明變數(shù)聲明變數(shù)最簡單的格式為:數(shù)據(jù)類型名稱變數(shù)名列表;例如:intnumber;//聲明一個(gè)整型變數(shù)boolopen;//聲明一個(gè)布爾型變數(shù)decimalbankBlance;//聲明一個(gè)十進(jìn)位變數(shù)可以一次聲明多個(gè)變數(shù),例如:sbytea,b;//聲明兩個(gè)有符號(hào)位元組型變數(shù)如果一次聲明多個(gè)變數(shù),變數(shù)名之間用逗號(hào)分隔。
章節(jié)目錄上一頁下一頁3.變數(shù)賦值C#規(guī)定,變數(shù)必須賦值後才能引用。為變數(shù)賦值需使用賦值號(hào)“=”。例如:intnumber;number=32;//為變數(shù)賦值32也可以使用變數(shù)為變數(shù)賦值,例如:boolclose;close=open;//為變數(shù)賦值true(假設(shè)open為已聲明的bool型變數(shù),其值為true)章節(jié)目錄上一頁下一頁可以為幾個(gè)變數(shù)一同賦值,例如:inta,b,c;a=b=c=32;可以在聲明變數(shù)的同時(shí)為變數(shù)賦值,相當(dāng)於將聲明語句與賦值語句合二為一。例如:doublearea,radius=16;章節(jié)目錄上一頁下一頁3.3.2常量1.直接常量(1)整型常量整型常量即整數(shù),整型常量有三種形式:十進(jìn)位形式,即通常意義上的整數(shù),如,123,48910等。八進(jìn)制形式,輸入八進(jìn)制整型常量,需要在數(shù)字前面加“0”,如,0123,038等。十六進(jìn)制形式,輸入十六進(jìn)制整型常量,需要在數(shù)字前面加“0x”或“0X”,如,0x123,0X48910等。
章節(jié)目錄上一頁下一頁(2)實(shí)型常量實(shí)型常量即帶小數(shù)的數(shù)值,實(shí)型常量有兩種表示形式:小數(shù)形式,即人們通常的書寫形式,如0.123,12.3,.123等等。指數(shù)形式,也叫科學(xué)記數(shù),由底數(shù)加大寫的E或小寫的e加指數(shù)組成,例如,123e5或123E5都表示123×105。章節(jié)目錄上一頁下一頁(3)字元常量字元常量表示單個(gè)的Unicode字元集中的一個(gè)字元,通常包括數(shù)字、各種字母、標(biāo)點(diǎn)、符號(hào)和漢字等。字元常量用一對(duì)英文單引號(hào)界定,如,'A','a','+','漢'等等。在C#中,有些字元不能直接放在單引號(hào)中作為字元常量,這時(shí)需要使用轉(zhuǎn)義符來表示這些字元常量,轉(zhuǎn)義符由反斜杠“\”加字元組成,如
'\n'。
章節(jié)目錄上一頁下一頁(4)字串常量字串常量是由一對(duì)雙引號(hào)界定的字元序列,例如:"歡迎使用C#!""Iamastudent."需要注意的是,即使由雙引號(hào)界定的一個(gè)字元,也是字串常量,不能當(dāng)做字元常量看待,例如,'A'與"A",前者是字元常量,後者是字串常量。
(5)布爾常量布爾常量即布爾值本身,如前所述,布爾值true(真)和false(假)是C#的兩個(gè)關(guān)鍵字。
章節(jié)目錄上一頁下一頁2.符號(hào)常量符號(hào)常量使用const關(guān)鍵字定義,格式為:
const類型名稱常量名=常量運(yùn)算式;常量定義中,“常量運(yùn)算式”的意義在於該運(yùn)算式不能包含變數(shù)及函數(shù)等值會(huì)發(fā)生變化的內(nèi)容。常量運(yùn)算式中可以包含其他已定義常量。
由於符號(hào)常量代表的是一個(gè)不變的值,所以符號(hào)常量不能出現(xiàn)在賦值號(hào)的左邊。如果在程式中非常頻繁地使用某一常量,可以將其定義為符號(hào)常量。
章節(jié)目錄上一頁下一頁3.3.3類型轉(zhuǎn)換數(shù)據(jù)類型的轉(zhuǎn)換有隱式轉(zhuǎn)換與顯式轉(zhuǎn)換兩種。1.隱式轉(zhuǎn)換隱式轉(zhuǎn)換是系統(tǒng)自動(dòng)執(zhí)行的數(shù)據(jù)類型轉(zhuǎn)換。隱式轉(zhuǎn)換的基本原則是允許數(shù)值範(fàn)圍小的類型向數(shù)值範(fàn)圍大的類型轉(zhuǎn)換,允許無符號(hào)整數(shù)類型向有符號(hào)整數(shù)類型轉(zhuǎn)換。
2.顯式轉(zhuǎn)換顯式轉(zhuǎn)換也叫強(qiáng)制轉(zhuǎn)換,是在代碼中明確指示將某一類型的數(shù)據(jù)轉(zhuǎn)換為另一種類型。顯式轉(zhuǎn)換的一般格式為:
(數(shù)據(jù)類型名稱)數(shù)據(jù)例如:intx=600;shortz=(short)x;顯式轉(zhuǎn)換中可能導(dǎo)致數(shù)據(jù)的丟失,例如:decimald=234.55M;intx=(int)d;章節(jié)目錄上一頁下一頁
章節(jié)目錄上一頁下一頁3.使用方法進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換(1)Parse方法Parse方法可以將特定格式的字串轉(zhuǎn)換為數(shù)值。Parse方法的使用格式為:數(shù)值類型名稱.Parse(字串型運(yùn)算式)例如:intx=int.Parse("123");(2)ToString方法ToString方法可將其他數(shù)據(jù)類型的變數(shù)值轉(zhuǎn)換為字串類型。ToString方法的使用格式為:變數(shù)名稱.ToString()例如:intx=123;strings=x.ToString();
章節(jié)目錄上一頁下一頁
3.4運(yùn)算符與運(yùn)算式
3.4.1運(yùn)算符與運(yùn)算式類型1.算術(shù)運(yùn)算符與算術(shù)運(yùn)算式算術(shù)運(yùn)算符有一元運(yùn)算符與二元運(yùn)算符。①
一元運(yùn)算符:-(取負(fù))、+(取正)、++(增量)、--(減量)。②
二元運(yùn)算符:+(加)、-(減)、*(乘)、/(除)、%(求餘)。由算術(shù)運(yùn)算符與運(yùn)算元構(gòu)成的運(yùn)算式叫算術(shù)運(yùn)算式。
章節(jié)目錄上一頁下一頁“-”與“+”只能放在運(yùn)算元的左邊。增量與減量量符只能用於變數(shù)。二元運(yùn)算符的意義與數(shù)學(xué)意義相同,其中%(求餘)運(yùn)算符是以除法的餘數(shù)作為運(yùn)算結(jié)果,求餘運(yùn)算也叫求模。例如:intx=6,y=2,z;z=x%y;//x除以y的結(jié)果不是3(商),而是0(餘數(shù))要注意數(shù)據(jù)類型。例如:inta,b=39;a=b/2;//a的值為18
章節(jié)目錄上一頁下一頁2.字串運(yùn)算符與字串運(yùn)算式字串運(yùn)算符只有一個(gè),即“+”運(yùn)算符,表示將兩個(gè)字串連接起來。例如:stringconnec="abcd"+"ef";//connec的值為“abcdef”“+”運(yùn)算符還可以將字元型數(shù)據(jù)與字串型數(shù)據(jù)或多個(gè)字元型數(shù)據(jù)連接在一起,例如:stringconnec="abcd"+'e'+'f';//connec的值為“abcdef”
章節(jié)目錄上一頁下一頁3.關(guān)係運(yùn)算符與關(guān)係運(yùn)算式>,<,>=,<=,==,!=。依次為大於,小於,大於等於,小於等於,等於,不等於。用於字串的關(guān)係運(yùn)算符只有相等“==”與不等“!=”運(yùn)算符。4.邏輯運(yùn)算符與邏輯運(yùn)算式在C#中,最常用的邏輯運(yùn)算符是!(非)、&&與、||(或)。
章節(jié)目錄上一頁下一頁例如:boolb1=!true;//b1的值為falseboolb2=5>3&&1>2;//b2的值為falseboolb3=5>3||1>2//b3的值為true5.條件運(yùn)算符與條件運(yùn)算式條件運(yùn)算符是C#中唯一的三元運(yùn)算符,條件運(yùn)算符由符號(hào)“?”與“:”組成,通過操作三個(gè)運(yùn)算元完成運(yùn)算,其一般格式為:布爾類型運(yùn)算式?運(yùn)算式1:運(yùn)算式2
章節(jié)目錄上一頁下一頁6.賦值運(yùn)算符與賦值運(yùn)算式在賦值運(yùn)算式中,賦值運(yùn)算符左邊的運(yùn)算元叫左運(yùn)算元,賦值運(yùn)算符右邊的運(yùn)算元叫右運(yùn)算元。左運(yùn)算元通常是一個(gè)變數(shù)。複合賦值運(yùn)算符,如“*=”、“/=”、“%=”、“+=”、“-=”等。
3.4.2運(yùn)算符的優(yōu)先順序與結(jié)合性
1.優(yōu)先順序
①一元運(yùn)算符的優(yōu)先順序高於二元和三元運(yùn)算符。②不同種類運(yùn)算符的優(yōu)先順序有高低之分,算術(shù)運(yùn)算符的優(yōu)先順序高於關(guān)係運(yùn)算符,關(guān)係運(yùn)算符的優(yōu)先順序高於邏輯運(yùn)算符,邏輯運(yùn)算符的優(yōu)先順序高於條件運(yùn)算符,條件運(yùn)算符的優(yōu)先順序高於賦值運(yùn)算符。③有些同類運(yùn)算符優(yōu)先順序也有高低之分,在算術(shù)運(yùn)算符中,乘、除、求餘的優(yōu)先順序高於加、減;在關(guān)係運(yùn)算符中,小於、大於、小於等於、大於等於的優(yōu)先順序高於相等與不等;邏輯運(yùn)算符的優(yōu)先順序按從高到低排列為非、與、或。章節(jié)目錄上一頁下一頁
章節(jié)目錄上一頁下一頁可以使用圓括號(hào)明確運(yùn)算順序。例如:strings=x>y?"greaterthan":x==y?"equalto":"lessthan";strings=x>y?"greaterthan":(x==y?"equalto":"lessthan");括弧還可以改變運(yùn)算式的運(yùn)算順序
:b*c+db*(c+d),
章節(jié)目錄上一頁下一頁4.1.2複合賦值語句與連續(xù)賦值語句
1.複合賦值語句
複合賦值語句是使用+=、-=、*=、/=等運(yùn)算符構(gòu)成的賦值語句,這種語句首先需要完成特定的運(yùn)算然後再進(jìn)行賦值運(yùn)算操作。例如:intx=5;x+=6;strings="abcd";s+="efjh";
章節(jié)目錄上一頁下一頁2.連續(xù)賦值語句連續(xù)賦值語句是在一條語句中使用多個(gè)賦值運(yùn)算符進(jìn)行賦值的語句,這種語句可以一次為多個(gè)變數(shù)賦予相同的值。例如:intx,y,z;x=y=z=6;strings1,s2,s3;s1=s2=s3="efjh";
章節(jié)目錄上一頁下一頁
4.2輸入與輸出4.2.1控制臺(tái)應(yīng)用程式的輸入與輸出方法1.輸方入法Read與ReadLine方法的功能是接受從鍵盤上輸入的數(shù)據(jù)
例如:charc=(char)Console.Read();strings=Console.ReadLine();inti=int.Parse(Console.ReadLine());
章節(jié)目錄上一頁下一頁2.輸出方法Write與WriteLineConsole.Write("abcd");Console.WriteLine("abcd");格式化輸出。例如:
Console.WriteLine("{0};{1};{2}",10,20,30);Console.WriteLine("{0}{1},{2}","這兩個(gè)數(shù)是:",10,20);
章節(jié)目錄上一頁下一頁4.2.2Windows應(yīng)用程式的輸入與輸出
1.焦點(diǎn)與Tab鍵順序
焦點(diǎn)是控件接收用戶滑鼠或鍵盤輸入的能力。
GotFocus或LostFocus事件。獲得焦點(diǎn)的語法格式為:對(duì)象名稱.Focus();
章節(jié)目錄上一頁下一頁
所謂Tab鍵序指的是在用戶按下〈Tab〉鍵時(shí),焦點(diǎn)在控件間移動(dòng)的順序。通過設(shè)置TabIndex屬性來改變一個(gè)控件的Tab鍵順序??丶腡abIndex屬性決定了它在Tab鍵順序中的位置。按照缺省規(guī)定,第一個(gè)建立的控件其TabIndex值為0,第二個(gè)的TabIndex值為1,以此類推。將控件的TabStop屬性設(shè)為false,便可將此控件從鍵序中排除,但仍然保持它在實(shí)際Tab鍵序中的位置,只不過在按〈Tab〉鍵時(shí)這個(gè)控件將被跳過。
章節(jié)目錄上一頁下一頁2.使用標(biāo)籤與文本框?qū)崿F(xiàn)輸入與輸出從使用程式的用戶的角度看,文本框和標(biāo)籤控件的主要區(qū)別在於標(biāo)籤控件是一個(gè)只能向用戶顯示輸出數(shù)據(jù)的控件,而文本框控件既可以讓用戶在其中輸入數(shù)據(jù),也可以向用戶顯示輸出數(shù)據(jù)。3.使用鏈接標(biāo)籤
LinkColor設(shè)置控件中未被單擊過的文字顏色VisiteLinkColor設(shè)置控件中被單擊過的文字顏色ActiveLinkColor單擊滑鼠時(shí)文字的顏色
章節(jié)目錄上一頁下一頁LinkVisited超鏈接是否被訪問過,F(xiàn)alse表示未被訪問過(默認(rèn)值)Links控件中所有鏈接的集合,屬於類LinkLabel.LinkConnectionLinkArea設(shè)置Text值(字串)的鏈接子串LinkClicked用戶單擊LinkLabel控件時(shí)觸發(fā)的事件
章節(jié)目錄上一頁下一頁4.3使用圖片框與圖片列表控件4.3.1使用圖片框(PictureBox)圖片框控件PictureBox用來在窗體上顯示一個(gè)圖片。
圖片框的BorderStyle屬性可設(shè)置其邊框樣式:值None表示沒有邊框;FixedSingle表示單線邊框;Fixed3D表示立體邊框。
章節(jié)目錄上一頁下一頁SizeMode屬性值及說明
AutoSize:PictureBox控件調(diào)整自身大小,使圖片能正好顯示其中CenterImage:若控件大於圖片則圖片居中;若圖片大於控件則圖片居中,超出控件的部分被剪切掉Normal:圖片顯示在控件左上角,若圖片大於控件則超出部分被剪切掉StretchImage:若圖片與控件大小不等,則圖片被拉伸或縮小以適應(yīng)控件
章節(jié)目錄上一頁下一頁5.1選擇結(jié)構(gòu)程式的設(shè)計(jì)在C#中,提供兩種選擇語句實(shí)現(xiàn)流程的改變:if語句,用於判斷特定的條件能否滿足,用於單分支選擇,也可以通過嵌套實(shí)現(xiàn)多分支選擇。switch語句,用於多分支選擇。
章節(jié)目錄上一頁下一頁5.2單分支選擇結(jié)構(gòu)(if語句)
if語句是程式設(shè)計(jì)中基本的選擇語句,它根據(jù)條件運(yùn)算式的值選擇要執(zhí)行的後面的內(nèi)嵌語句序列。一般用於簡單選擇,即選擇項(xiàng)中有一個(gè)或兩個(gè)分支,語句執(zhí)行的過程中根據(jù)不同的情況進(jìn)行選擇其中一個(gè)分支執(zhí)行。格式為:
if(布爾條件運(yùn)算式)
內(nèi)嵌語句序列1;else
內(nèi)嵌語句序列2;圖5-1if語句的流程圖條件運(yùn)算式內(nèi)嵌語句序列1內(nèi)嵌語句序列2TrueFalse圖5-1if語句的流程圖
章節(jié)目錄上一頁下一頁說明:①若布爾運(yùn)算式的值為真時(shí),程式執(zhí)行內(nèi)嵌語句序列1,否則執(zhí)行內(nèi)嵌語句序列2。②ifelse語句中,內(nèi)嵌語句序列1和內(nèi)嵌語句序列2可以是簡單語句,也可以是複合語句。如果內(nèi)嵌語句序列中為多個(gè)執(zhí)行語句要使用花括弧({…})組合為一個(gè)語句塊。③也可以省去else和內(nèi)嵌語句序列2,即當(dāng)程式滿足布爾運(yùn)算式的值為真時(shí),執(zhí)行語句序列1。該結(jié)構(gòu)的流程圖如圖5-1所示。
章節(jié)目錄上一頁下一頁5.2.1if…else語句根據(jù)布爾條件運(yùn)算式的值進(jìn)行判斷,當(dāng)該值為真時(shí)執(zhí)行if語句後的語句序列,當(dāng)為假時(shí),執(zhí)行else語句後的語句序列。該結(jié)構(gòu)一般用於兩種分支的選擇。下麵結(jié)合實(shí)例介紹if…else語句的使用方法?!纠?-1】某商店為了吸引顧客,採取以下優(yōu)惠活動(dòng):所購商品在1000元以下的,打9折優(yōu)惠;所購商品多於1000元的,打8折優(yōu)惠。試采用if語句實(shí)現(xiàn)該優(yōu)惠。
章節(jié)目錄上一頁下一頁分析:該問題屬於數(shù)學(xué)分段函數(shù)問題,當(dāng)所購商品總額<1000元時(shí),打折後的商品總額為(所購商品總額*0.9);當(dāng)所購商品總額>1000時(shí),打折後的商品總額為(所購商品總額*0.8)。(1)建立專案在VisualStudio.NET中,打開“檔”菜單,依次選擇“新建→專案”命令,打開“新建專案”對(duì)話框,選擇“VisualC#專案”,選擇“Windows應(yīng)用程式”輸入專案的名稱和存放位置。
圖5-2實(shí)現(xiàn)打折優(yōu)惠
章節(jié)目錄上一頁下一頁(2)設(shè)計(jì)窗體單擊工作區(qū)左側(cè)的“工具箱”或單擊工具欄上工具箱圖示,工具箱將顯示在工作區(qū)左側(cè)。添加相應(yīng)的控件。(3)編輯代碼選中按鈕控件,單擊滑鼠右鍵,在彈出的菜單中選擇“查看代碼”命令,或通過“視圖”菜單中的“代碼”命令,切換到代碼視圖。也可以雙擊控件直接在事件中添加代碼。代碼為:
章節(jié)目錄上一頁下一頁privatevoidbutton1_Click(objectsender,System.EventArgse){doublek,m;k=double.Parse(tCost.Text);if(k<1000){m=k*0.9;}else{m=k*0.8;}pCost.Text=m.ToString();}
章節(jié)目錄上一頁下一頁(4)編譯、運(yùn)行程式單擊工具欄上的啟動(dòng)按鈕,或按〈F5〉鍵執(zhí)行程式,顯示W(wǎng)indows窗體。在“請(qǐng)輸入所購商品的總金額”文本框中輸入相關(guān)金額,單擊【打折】按鈕,完成相應(yīng)的功能?!纠?-2】編輯框的PasswordChar屬性可以隱蔽用戶通過鍵盤輸入的字元,常用來編寫檢查用戶口令的程式。使用選擇語句實(shí)現(xiàn)該操作。
分析:本題使用編輯框?qū)崿F(xiàn)命令接受工作,使用if語句實(shí)現(xiàn)判斷。採用基本的控件實(shí)現(xiàn)如圖5-4所示。圖5-4口令驗(yàn)證
章節(jié)目錄上一頁下一頁代碼如下。privatevoidbutton1_Click(objectsender,System.EventArgse){if(textBox1.Text=="abc")//設(shè)口令為“abc”label2.Text="歡迎使用本系統(tǒng)!";//如果輸入正確,顯示"歡迎使用本系統(tǒng)!"else//如果輸入不正確
label2.Text="對(duì)不起,您的口令有誤,您無權(quán)使用該系統(tǒng)!";}
章節(jié)目錄上一頁下一頁5.2.2if…else…if語句
if…else語句也可以用於多種分支的選擇結(jié)構(gòu),這種情況也就是if語句嵌套結(jié)構(gòu)。if語句中,內(nèi)嵌語句可以是複合語句,也就是說,內(nèi)嵌語句中可以包含選擇語句、迴圈語句等。那麼,if語句可以嵌套,但應(yīng)注意if…else的配對(duì)問題。在默認(rèn)情況下,else語句總是和最近的if語句配對(duì)。下麵通過【例5-3】瞭解if語句的嵌套方法。
章節(jié)目錄上一頁下一頁【例5-3】將百分制成績轉(zhuǎn)換為五分制成績。轉(zhuǎn)換標(biāo)準(zhǔn)如下:90分以上為“優(yōu)秀”,80分以上為“良”,70分以上為“中”,60分以上為“及格”,60分以下為“不及格”。程式運(yùn)行結(jié)果如圖5-5左圖所示。
圖5-5成績轉(zhuǎn)換設(shè)計(jì)
章節(jié)目錄上一頁下一頁程式運(yùn)行時(shí),單擊【轉(zhuǎn)換】按鈕執(zhí)行的代碼如下:privatevoidbutton1_Click(objectsender,System.EventArgse)
{intk=int.Parse(textBox2.Text);if(k>90)textBox1.Text="優(yōu)";elseif(k>80)textBox1.Text="良";
章節(jié)目錄上一頁下一頁elseif(k>70)textBox1.Text="中";elseif(k>60)textBox1.Text="及格";elseif(k<60)//此指令可省略
textBox1.Text="不及格";}上例中使用了if語句的嵌套實(shí)現(xiàn),其中因?yàn)闂l件判斷後只用一個(gè)語句,如“textBox1.Text="良";”,所以,可以省略{},當(dāng)存在多條語句時(shí),要使用{}表示為一個(gè)語句塊。
1.break語句break語句用於停止貫穿語句的執(zhí)行。即在switch語句結(jié)構(gòu)中,break語句用於選擇分支的語句運(yùn)行。也可使用goto語句實(shí)現(xiàn)語句轉(zhuǎn)移,但是,應(yīng)儘量避免使用這種方法。2.default標(biāo)籤在switch語句中,常常用到default標(biāo)籤來處理不滿足case語句的值,定義default標(biāo)籤可以增強(qiáng)處理相應(yīng)的異常章節(jié)目錄上一頁下一頁【例5-5】某航空公司規(guī)定在旅遊的旺季7~9月份,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠15%,20張以下,優(yōu)惠5%;在旅遊的淡季1~5月份、10月份、11月份,如果訂票數(shù)超過20張,票價(jià)優(yōu)惠30%,20張以下,優(yōu)惠20%;其他情況一律優(yōu)惠10%設(shè)計(jì)程式,根據(jù)月份和訂票張數(shù)決定票價(jià)的優(yōu)惠率(如圖5-8)
章節(jié)目錄上一頁下一頁圖5-8計(jì)算優(yōu)惠價(jià)該問題屬於多分支選擇問題。該問題中旅遊的淡季1~5月份、10月份、11月份的優(yōu)惠率一樣,在switch語句中,這幾種情況可以使用同一種操作;旅遊的旺季7~9月份的優(yōu)惠率一樣,可以使用同一種操作?!坝?jì)算優(yōu)惠率”按鈕實(shí)現(xiàn)代碼如下。privatevoidbutton1_Click(objectsender,System.EventArgse){ intmon; intsum;mon=Convert.ToInt32(textBox1.Text);sum=Convert.ToInt32(textBox2.Text);章節(jié)目錄上一頁下一頁
switch(mon){case1:case2:case3:case4:case5:case10:case11:if(sum>20)label3.Text="優(yōu)惠率為30%";elselabel3.Text="優(yōu)惠率為20%";break;case7:
章節(jié)目錄上一頁下一頁case8:case9:if(sum>20)label3.Text="優(yōu)惠率為15%";elselabel3.Text="優(yōu)惠率為5%";break;default:label3.Text="優(yōu)惠率為10%";break;
}}章節(jié)目錄上一頁下一頁5.4使用單選按鈕與複選框控件5.4.1單選按鈕(RadioButton)單選按鈕也叫選項(xiàng)按鈕,為用戶提供從多個(gè)選項(xiàng)中選擇一個(gè)選項(xiàng)的功能,因此單選按鈕顧名思義是一種“多選一”的控件?!纠?-6】設(shè)計(jì)Windows應(yīng)用程式,單擊【顯示】按鈕,根據(jù)對(duì)單選按鈕的選擇,分別顯示日期或時(shí)間。程式運(yùn)行結(jié)果如圖5-11和圖5-12所示。章節(jié)目錄上一頁下一頁1.break語句break語句用於停止貫穿語句的執(zhí)行。即在switch語句結(jié)構(gòu)中,break語句用於選擇分支的語句運(yùn)行。也可使用goto語句實(shí)現(xiàn)語句轉(zhuǎn)移,但是,應(yīng)儘量避免使用這種方法。章節(jié)目錄上一頁下一頁(1)設(shè)計(jì)窗體和設(shè)置屬性章節(jié)目錄上一頁下一頁圖5-11顯示日期圖5-12顯示時(shí)間(2)設(shè)計(jì)代碼privatevoidbutton1_Click(objectsender,System.EventArgse){if(ShowDate.Checked)//顯示日期
lblDateTime.Text=DateTime.Now.Year+"年"+DateTime.Now.Month+"月"+DateTime.Now.Day+"日";if(ShowTime.Checked)//顯示時(shí)間
lblDateTime.Text=DateTime.Now.Hour+"時(shí)"+DateTime.Now.Minute+"分"+DateTime.Now.Second+"秒";}章節(jié)目錄上一頁下一頁
在編寫程式過程中,往往出現(xiàn)相同類型操作需要重複出現(xiàn),如實(shí)現(xiàn)1+2+…+100,則需要做99次加法,這類問題使用迴圈語句解決,可以使問題變得簡單。即迴圈語句用於實(shí)現(xiàn)語句塊的重複執(zhí)行。根據(jù)問題的具體情況,C#中提供了四種不同的迴圈機(jī)制:for迴圈、while迴圈、do…while迴圈和foreach迴圈。這裏介紹前三種迴圈機(jī)制,foreach迴圈將在數(shù)組仲介紹。6.1for迴圈語句
for迴圈常常用於已知迴圈次數(shù)的情況,使用該迴圈時(shí),測(cè)試是否滿足某個(gè)條件,如果滿足條件,則進(jìn)入下一次迴圈,否則,退出該迴圈。章節(jié)目錄上一頁下一頁6.1.1for語句的語法格式for迴圈語句格式為:for(運(yùn)算式1;運(yùn)算式2;運(yùn)算式3){迴圈語句序列;}其中運(yùn)算式1用於參與迴圈條件變數(shù)的初始化,該運(yùn)算式僅執(zhí)行一次;運(yùn)算式2為條件判斷運(yùn)算式,即每次循環(huán)體開始之前,判斷該運(yùn)算式是否成立,如果成立,進(jìn)入下一次迴圈,否則,迴圈結(jié)束;運(yùn)算式3用於參與迴圈條件變數(shù)的運(yùn)算,一般為遞增或遞減的迴圈計(jì)數(shù)器。迴圈語句序列用於描述重複執(zhí)行的語句,當(dāng)語句序列中僅含有一條語句時(shí),花括弧可以省略。章節(jié)目錄上一頁下一頁流程圖如圖6-1所示。該結(jié)構(gòu)中,運(yùn)算式1、運(yùn)算式2、運(yùn)算式3是可選的,但應(yīng)該注意死迴圈的發(fā)生。如運(yùn)算式2省略,並且不采用轉(zhuǎn)移語句,會(huì)導(dǎo)致死迴圈的發(fā)生。可以在循環(huán)體中的任何位置放置break語句來強(qiáng)制終止for迴圈——隨時(shí)跳出for迴圈。break語句通常包含於if語句中。章節(jié)目錄上一頁下一頁圖6-1for迴圈流程圖6.1.2for迴圈語句的使用根據(jù)下麵的實(shí)例,瞭解for語句的工作流程及實(shí)現(xiàn)方法?!纠?-1】計(jì)算1+2+3+…100。使用for語句實(shí)現(xiàn)。分析:該問題屬於重複執(zhí)行加法的問題,並且參與運(yùn)算的兩個(gè)運(yùn)算元不斷的按規(guī)律增加。該類問題可以通過迴圈進(jìn)行解決。(1)建立專案(2)設(shè)計(jì)窗體(3)設(shè)計(jì)代碼章節(jié)目錄上一頁下一頁在窗體設(shè)計(jì)圖上,雙擊按鈕button1編寫【計(jì)算】按鈕的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;for(intk=1;k<=100;k=k+1){sum=sum+k;}label1.Text="從1加到100值為"+sum.ToString();}章節(jié)目錄上一頁下一頁
程式的運(yùn)行結(jié)果如圖6-2所示的左圖,單擊“計(jì)算”按鈕,將在標(biāo)籤上顯示運(yùn)行結(jié)果。章節(jié)目錄上一頁下一頁圖6-2程式運(yùn)行結(jié)果【例6-2】計(jì)算n!,假設(shè)n=10。分析:該例實(shí)現(xiàn)階乘的運(yùn)算,可以使用改變乘數(shù)的值進(jìn)行實(shí)現(xiàn),使用迴圈可以方便的實(shí)現(xiàn)該類問題。程式的運(yùn)行結(jié)果如圖6-3左圖所示。章節(jié)目錄上一頁下一頁圖6-3計(jì)算n!編寫【計(jì)算】按鈕的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum,k;sum=1;for(k=1;k<=10;k++){sum=sum*k;}textBox1.Text=sum.ToString();}章節(jié)目錄上一頁下一頁6.2while迴圈語句與for迴圈語句比較,while語句使用的頻率要低一些,它可以用於不知道迴圈次數(shù)的情況;用於在迴圈時(shí)判斷是否滿足某個(gè)條件。每一次在迴圈的頂部進(jìn)行檢測(cè)迴圈是否繼續(xù),當(dāng)迴圈的條件為假時(shí),退出迴圈。6.2.1while迴圈語句的語法格式while迴圈語句的格式為:while(布爾條件運(yùn)算式){語句序列;}布爾條件運(yùn)算式是每次迴圈開始前進(jìn)行判斷的條件,當(dāng)條件運(yùn)算式的值為真時(shí),執(zhí)行迴圈;否則,退出迴圈。該語句結(jié)構(gòu)的流程圖如圖6-4所示。章節(jié)目錄上一頁下一頁說明如下:①布爾條件運(yùn)算式是一個(gè)具有boolean值的條件運(yùn)算式,為迴圈的條件。②作為循環(huán)體的語句序列可以是簡單語句、複合語句和其他結(jié)構(gòu)語句。③while迴圈的執(zhí)行過程:首先計(jì)算條件運(yùn)算式的值,如果為真(True),則執(zhí)行後面的循環(huán)體,執(zhí)行完後,再開始一個(gè)新的迴圈;如果為假(False),則終止迴圈,執(zhí)行循環(huán)體後面的語句。章節(jié)目錄上一頁下一頁④可以在循環(huán)體中的任何位置放置break語句來強(qiáng)制終止while迴圈——隨時(shí)跳出while迴圈。break語句通常包含於if語句中。⑤可以在循環(huán)體中的任何位置放置continue語句,在整個(gè)循環(huán)體沒有執(zhí)行完就重新判斷條件,以決定是否開始新的迴圈。continue語句通常包含於if語句中。章節(jié)目錄上一頁下一頁圖6-4while程式流程圖6.2.2while迴圈語句的使用【例6-3】設(shè)有一張厚為xmm,面積足夠大的紙,將它不斷地對(duì)折。試問對(duì)折多少次後,其厚度可達(dá)珠穆朗瑪峰的高度(8844.43m)。設(shè)對(duì)折後紙的厚度為hmm,計(jì)數(shù)器為n。在沒有對(duì)折時(shí),紙厚為xmm,每對(duì)折一次,其厚度是上一次的2倍,在未到達(dá)8844.43m時(shí),重複對(duì)折。在程式中,紙的厚度就是對(duì)折後紙的厚度,所以用一個(gè)變數(shù)h。章節(jié)目錄上一頁下一頁建立應(yīng)用程式用戶介面與設(shè)置對(duì)象屬性,如圖6-5所示。章節(jié)目錄上一頁下一頁圖6-5用戶介面及程式運(yùn)行結(jié)果章節(jié)目錄上一頁下一頁【計(jì)算】按鈕的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){intn=0;floath;h=float.Parse(textBox1.Text);while(h<8844430){n=n+1;h=2*h;}textBox2.Text=n.ToString();}程式運(yùn)行結(jié)果如圖6-5所示。章節(jié)目錄上一頁下一頁6.3do…while迴圈do…while迴圈非常類似於while迴圈。一般情況下,可以相互轉(zhuǎn)換使用。它們之間的差別在於while迴圈的測(cè)試條件在每一次迴圈開始時(shí)執(zhí)行,而do…while迴圈的測(cè)試條件在每一次循環(huán)體結(jié)束時(shí)進(jìn)行判斷。同樣的,do…while可以解決一些迴圈問題,但使用的頻率較少。6.3.1do…while的語法格式do…while語法的一般格式為:do{語句序列;}while(布爾條件運(yùn)算式)章節(jié)目錄上一頁下一頁6.3.2do…while的使用【例6-4】使用do…while語句實(shí)現(xiàn)1+2+3+…100。窗體及控件的屬性設(shè)計(jì)見【例6-1】?!居?jì)算】按鈕的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;intk=1;
章節(jié)目錄上一頁下一頁do{sum=sum+k;k=k+1;}while(k<=100);label1.Text="從1加到100值為"+sum.ToString();//將sum顯式轉(zhuǎn)換為字串}章節(jié)目錄上一頁下一頁6.5迴圈的嵌套當(dāng)一個(gè)迴圈(稱為“外迴圈”)的迴圈語句序列內(nèi)包含另一個(gè)迴圈(稱為“內(nèi)迴圈”),稱為迴圈的嵌套,這種語句結(jié)構(gòu)稱為多重迴圈結(jié)構(gòu)。內(nèi)迴圈中還以包含迴圈,形成多層迴圈(迴圈嵌套的層數(shù)理論上無限制)。三種迴圈(while迴圈、do…while迴圈、for迴圈)可以互相嵌套。在多重迴圈中,需要注意的是迴圈語句所在迴圈的層數(shù)。如以下代碼:intsum=0;for(inti=1;i<=10;i=i+1)for(intk=1;k<=i;k=k+1)sum=sum+k;章節(jié)目錄上一頁下一頁【例6-6】編程實(shí)現(xiàn)九九乘法表。分析:本例中實(shí)現(xiàn)每一個(gè)一位數(shù)i顯示從1乘到i,對(duì)於i的取值要從取到9,所以可以使用兩重迴圈實(shí)現(xiàn),程式設(shè)計(jì)如圖6-8所示。使用label1控件實(shí)現(xiàn)乘法表的顯示。章節(jié)目錄上一頁下一頁圖6-8九九乘法表本例的介面設(shè)計(jì)如圖6-8右圖,使用label1控件實(shí)現(xiàn)乘法表的顯示。本例使用兩重迴圈實(shí)現(xiàn),其中外層迴圈實(shí)現(xiàn)乘法表中第二乘數(shù)i取值範(fàn)圍為1到9,內(nèi)層迴圈在外層迴圈的基礎(chǔ)上計(jì)算第一個(gè)乘數(shù)k的取值範(fàn)圍為1到i,其乘積以及運(yùn)算式在label控件中顯示。運(yùn)行結(jié)果如圖6-8左圖所示?!揪啪懦朔ū怼堪粹o的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){label1.Text="";strings="";intsum;
章節(jié)目錄上一頁下一頁for(inti=1;i<10;i=i+1){s="";for(intk=1;k<=i;k=k+1){sum=k*i;s=s+k.ToString()+"×"+i.ToString()+"="+sum.ToString()+";";}label1.Text+=s+"\n";//顯示並換行
}}章節(jié)目錄上一頁下一頁6.4跳轉(zhuǎn)語句使用跳轉(zhuǎn)語句,可以使程式執(zhí)行跳轉(zhuǎn)到程式中其他部分。C#中提供四種轉(zhuǎn)移語句:goto語句、break語句、continue語句、return語句。1.goto語句
goto語句可以將程式控制直接轉(zhuǎn)移給標(biāo)籤制定的語句。但由於goto語句改變了程式的正常流程,使得程式特別容易出錯(cuò),所以儘量不要用。而且,用goto語句實(shí)現(xiàn)的迴圈完全可以用迴圈語句實(shí)現(xiàn),因此,goto語句很少使用。章節(jié)目錄上一頁下一頁2.break語句在第5章仲介紹了break在switch中的用法,break語句也可以用於退出所在的最近迴圈,使用break語句時(shí),將結(jié)束迴圈,執(zhí)行後面的語句。break不能放在迴圈語句或switch語句後,否則發(fā)生錯(cuò)誤。3.continue語句continue語句用於迴圈語句中,類似於break語句,但僅從當(dāng)前的迴圈迭代中退出,然後執(zhí)行下一次迭代迴圈?!纠?-10】使用計(jì)數(shù)器迴圈語句瞭解continue語句的使用,要求輸出大於5的數(shù)章節(jié)目錄上一頁下一頁本例使用控制臺(tái)程式實(shí)現(xiàn)?!居?jì)算】按鈕的Click(單擊)事件代碼為:staticvoidMain(string[]args){for(inti=1;i<=10;i=i+1){if(i<5)continue;Console.WriteLine(i);}Console.ReadLine();}章節(jié)目錄上一頁下一頁本程式的運(yùn)行結(jié)果為5678910該例中當(dāng)i<5時(shí)通過continue退出本次迴圈,所以運(yùn)行結(jié)果中不顯示1、2、3、4數(shù)字。章節(jié)目錄上一頁下一頁6.5列表框和組合框6.5.1列表框(ListBox)ListBox控件為用戶提供了選項(xiàng)的列表,用戶可以從列表中進(jìn)行選擇輸入。如果專案數(shù)目超過列表框可顯示的數(shù)目,控件上將自動(dòng)出現(xiàn)滾動(dòng)條,它是一種規(guī)範(fàn)輸入的好工具。1.列表框的常用屬性、方法和事件2.列表框應(yīng)用實(shí)例【例6-11】計(jì)算並輸出從sum=1+…+(k-1)+k。滿足sum>1000是退出迴圈。章節(jié)目錄上一頁下一頁分析:該例屬於迴圈中語句轉(zhuǎn)移的情況,本例中使用listBox控件用於顯示sum的值,使用button控件實(shí)現(xiàn)該事件。程式設(shè)計(jì)如圖6-12所示。章節(jié)目錄上一頁下一頁圖6-12計(jì)算sum的值【計(jì)算】按鈕的Click(單擊)事件代碼為:privatevoidbutton1_Click(objectsender,System.EventArgse){intk=1;intsum=0;while(k<100){sum=sum+k;listBox1.Items.Add("0+…"+k.ToString()+"="+sum.ToString());k=k+1;if(sum>1000)break;}}章節(jié)目錄上一頁下一頁6.5.2組合框(ComboBox)組合框是一個(gè)文本框和一個(gè)列表框的組合。與列表框不同的是列表框只能在給定的列表項(xiàng)中選擇,而組合框除了可在給定的列表項(xiàng)中選擇還可以直接在文本框中輸入(DropDownStyle屬性被設(shè)置DropDownList時(shí)除外)。1.ComboBox常用屬性和事件2.ComboBox應(yīng)用實(shí)例章節(jié)目錄上一頁下一頁【例6-12】要求單擊【開始】按鈕,將兩個(gè)組合框中指定的年份範(fàn)圍內(nèi)的所有閏年輸出到列表框中。圖6-14為顯示1955~2005年之間的所有閏年的結(jié)果。章節(jié)目錄上一頁下一頁
圖6-14程式運(yùn)行結(jié)果(1)設(shè)計(jì)程式介面。(2)設(shè)置對(duì)象屬性。(3)編寫程式代碼。privatevoidbtnStart_Click(objectsender,System.EventArgse){//如果任一組合框中沒有選定年份,則不執(zhí)行任何操作
if(cboStart.SelectedIndex==-1||cboEnd.SelectedIndex==-1){return;}章節(jié)目錄上一頁下一頁intyearStart=int.Parse(cboStart.SelectedItem.ToString());intyearEnd=int.Parse(cboEnd.SelectedItem.ToString());if(yearStart>yearEnd)return;lstOut.Items.Clear();//清除上次判斷顯示的內(nèi)容
for(inti=yearStart;i<=yearEnd;i=i+1)if(i%4==0&&i%100!=0||i%400==0)lstOut.Items.Add(i);//將閏年的年份追加到列表框}章節(jié)目錄上一頁下一頁【清除】按鈕被單擊時(shí)執(zhí)行的事件代碼如下:privatevoidbtnClear_Click(objectsender,System.EventArgse){lstOut.Items.Clear();//清空列表}章節(jié)目錄上一頁下一頁6.6使用計(jì)時(shí)器控件(Timer)計(jì)時(shí)器(Timer)控件在工具箱的圖示為,它是一種無需用戶干預(yù),按一定時(shí)間間隔週期性地自動(dòng)觸發(fā)事件的控件。一般用來檢查系統(tǒng)時(shí)間,判斷是否該執(zhí)行某項(xiàng)任務(wù),也可以用於後臺(tái)處理。Timer控件在程式運(yùn)行時(shí)是不可見的,所以將其添加到窗體後顯示在窗體設(shè)計(jì)器下方的組件窗格中。6.6.1計(jì)時(shí)器控件的屬性、方法和事件Timer控件的主要屬性、方法和事件見表6-4。在計(jì)時(shí)器的Tick事件中設(shè)計(jì)的程式代碼,會(huì)在該事件不斷被觸發(fā)的過程中,重複執(zhí)行,從這一點(diǎn)看,計(jì)時(shí)器具有迴圈語句的功能。章節(jié)目錄上一頁下一頁(2)設(shè)置對(duì)象屬性。章節(jié)目錄上一頁下一頁
圖6-19運(yùn)行結(jié)果添加代碼以保證窗口被啟動(dòng)時(shí)txtNumber控件獲得焦點(diǎn),代碼如下:privatevoidForm1_Activated(objectsender,System.EventArgse){txtNumber.Focus();//輸入文本框獲得焦點(diǎn)}章節(jié)目錄上一頁下一頁用上面同樣方法,選中txtNumber(textBox3)控件,在如圖6-24所示的窗口中雙擊KeyPress,為控件txtNumber添加KeyPress(鍵盤事件)代碼如下:privatevoidtxtNumber_KeyPress(objectsender,System.Windows.Forms.KeyPressEventArgse){if(e.KeyChar=='\r')//按〈Enter〉鍵則執(zhí)行下麵的代碼(開始倒計(jì)時(shí))
{if(txtNumber.Text=="")章節(jié)目錄上一頁下一頁return;remainder=Convert.ToUInt32(txtNumber.Text)*60;//將分鐘換算為秒
timer2.Enabled=false;//第2個(gè)計(jì)時(shí)器終止工作
timer1.Enabled=true;//第1個(gè)計(jì)時(shí)器開始工作
lblTimeEnd.Visible=true;//顯示控件
txtTimeEnd.Visible=true;//顯示控件
lblTimeStart.Text="開始時(shí)間:";//更換標(biāo)籤標(biāo)題
}}章節(jié)目錄上一頁下一頁雙擊控件timer2添加事件代碼如下:privatevoidtimer2_Tick(objectsender,System.EventArgse){//在txtTimeStart文本框中顯示時(shí)間
txtTim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出國建筑合同范本
- 健身車外貿(mào)合同范本
- 代建租賃合同范本
- 凍庫驗(yàn)收合同范本
- ipad制作合同范本
- 長寧區(qū)制作家具施工方案
- 使用保姆合同范本
- ppp 外貿(mào)合同范本
- 公寓租給酒店合同范本
- 仿古街建設(shè)合同范本
- 2024年山東理工職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 三叉神經(jīng)痛的護(hù)理問題
- 2025北京平谷初三(上)期末數(shù)學(xué)真題試卷(含答案解析)
- VQ-100無人機(jī)手冊(cè)(一)
- 2024年01月河北2024滄州銀行總行科技開發(fā)部招考筆試歷年參考題庫附帶答案詳解
- 2024-2030年中國橡膠密封件行業(yè)運(yùn)行動(dòng)態(tài)及發(fā)展前景規(guī)劃研究報(bào)告
- 八省八校2025屆高三上學(xué)期12月聯(lián)合測(cè)評(píng)語文試題及參考答案
- 現(xiàn)代物流基礎(chǔ)習(xí)題+參考答案
- 商洛職業(yè)技術(shù)學(xué)院《會(huì)計(jì)信息系統(tǒng)單統(tǒng)計(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 生產(chǎn)線搬新場(chǎng)地驗(yàn)證方案計(jì)劃
- 《古詩三首》五年級(jí)下冊(cè)第一單元教學(xué)方案
評(píng)論
0/150
提交評(píng)論