C#程序設(shè)計rppt課件(完整版)_第1頁
C#程序設(shè)計rppt課件(完整版)_第2頁
C#程序設(shè)計rppt課件(完整版)_第3頁
C#程序設(shè)計rppt課件(完整版)_第4頁
C#程序設(shè)計rppt課件(完整版)_第5頁
已閱讀5頁,還剩580頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C# 程序設(shè)計第1章 C#概述.NET Framework的功能 Visual Studio .NET開發(fā)工具包的使用 認(rèn)識C#控制臺應(yīng)用程序的結(jié)構(gòu)1.1 C#基本概念 1.1.1 什么是C# 微軟對C#的定義是:“一種類型安全、現(xiàn)代、簡單,由C 和C+衍生而來的面向?qū)ο蟮木幊陶Z言” 1.1 C#基本概念 1.1.1 什么是C# C#主要特點:1. 簡潔的語法2. 真正的面向?qū)ο笤O(shè)計3. 與Web 的緊密結(jié)合4. 完全的安全性與錯誤處理5. 靈活的版本處理技術(shù)6. 靈活性和兼容性 1.1 C#基本概念 1.1.2 .NET Framework.NET Framework 主要目的是實現(xiàn)下列目標(biāo)

2、: (1)提供一個一致的面向?qū)ο蟮木幊汰h(huán)境。(2)提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境。(3)提供一個可提高代碼執(zhí)行安全性的代碼執(zhí)行環(huán)境。1.1 C#基本概念 1.1.2 .NET Framework.NET Framework 主要目的是實現(xiàn)下列目標(biāo): (4)提供一個可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境。(5)使開發(fā)人員的經(jīng)驗在面對類型完全不相同的應(yīng)用程序時保持一致。(6)按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;?.NET Framework 的代碼可與任何其他代碼集成。 1.1.2 .NET Framework1. .NET框架使用的語言 目前已經(jīng)有C#.NET、V

3、B .NET、C+.NET、J#.NET、JScript.NET等(VBScript已不再使用)。 1.1.2 .NET Framework1. .NET框架使用的語言 各種語言經(jīng)過編譯后,并不直接產(chǎn)生中央處理器CPU可執(zhí)行的代碼,而是先轉(zhuǎn)變?yōu)橐环N中間語言(Intermediate Language,簡稱IL或MSIL)。執(zhí)行時再由公共語言運行庫載入內(nèi)存,通過實時解釋將其轉(zhuǎn)換為CPU可執(zhí)行代碼。 1.1.2 .NET Framework1.1.2 .NET Framework2. 基礎(chǔ)類庫 .NET框架中的類被拆分為命名空間,而命名空間是類庫的邏輯分區(qū)。類庫所采用的命名空間是采用分層次的結(jié)構(gòu),

4、即命名空間下面又可以再分成子命名空間。每個命名空間都包含一組按照功能劃分的相關(guān)類。 1.1.2 .NET Framework2. 基礎(chǔ)類庫(1)所有微軟公司提供的類都以System 或 Microsoft 命名空間開頭。(2)有關(guān)網(wǎng)絡(luò)協(xié)議和簡單編程接口的類放在System.Net命名空間中。(3)有關(guān)文件I/O、內(nèi)存I/O、獨立存儲的類放在System.IO命名空間中。1.1.2 .NET Framework2. 基礎(chǔ)類庫(3)基于Windows應(yīng)用程序的用戶界面的類放在System.Windows.Forms命名空間中。(4)有關(guān)Web服務(wù)器與瀏覽器交互,以及Web服務(wù)的類都放入System

5、.Web及其子命名空間中。(5)所有用于處理XML、XML架構(gòu)、XSL/T轉(zhuǎn)換、Xpath表達(dá)式的類都放入System.Xml及其子命名空間中。1.1.2 .NET Framework3. 公共語言運行庫 提供了程序運行時的內(nèi)存管理、垃圾自動回收、線程管理和遠(yuǎn)程處理以及其他系統(tǒng)服務(wù)。 還能監(jiān)視程序的運行,進行嚴(yán)格的安全檢查和維護工作,以確保程序運行的安全、可靠以及其他形式的代碼準(zhǔn)確性。 1.1.2 .NET Framework隨.NET Framework 3.5引入的技術(shù)主要有: (1)語言集成查詢(2)外接程序和擴展性(3)WPF(4)WCF1.1.2 .NET Framework隨.NE

6、T Framework 3.5引入的技術(shù)主要有: (1)語言集成查詢(2)外接程序和擴展性(3)WPF(4)WCF1.2 C#程序開發(fā)環(huán)境 1.2.1 安裝C#開發(fā)環(huán)境1.2.2 Visual Studio的集成開發(fā)環(huán)境1. 起始頁 1.2.2 Visual Studio的集成開發(fā)環(huán)境2. 創(chuàng)建一個項目1.2.2 Visual Studio的集成開發(fā)環(huán)境3解決方案資源管理器1.2.2 Visual Studio的集成開發(fā)環(huán)境3解決方案資源管理器1.2.3 C#的控制臺應(yīng)用程序1. 新建項目 2. 代碼分析using System;using System.Collections.Generic

7、;using System.Linq;using System.Text; namespace helloworld class Program public static void Main(string args) Console.WriteLine(Hello World!); Console.ReadLine(); 劉兵 制作C# 程序設(shè)計第2章 C#程序設(shè)計基礎(chǔ)值類型和引用類型數(shù)據(jù)的使用 值類型和引用類型數(shù)據(jù)的區(qū)別 數(shù)據(jù)類型轉(zhuǎn)換變量和常量的使用 常用運算符和關(guān)鍵字 2.1 數(shù)據(jù)類型 2.1.1 值類型 值類型共分為3大類 簡單類型結(jié)構(gòu)類型枚舉類型2.1.1 值類型 1. 簡單類型 簡

8、單類型包含:整數(shù)類型字符類型、實數(shù)類型布爾類型 C#基本類型類型說明范 圍byte8位無符號整型0255(028-1)sbyte8位有符號整型-128127(-2727-1)short16位有符號整型-3276832767(-215215-1)int32位有符號整型-21474836482147483647(-231231-1)long64位有符號整型-92233720368547758089223372036854775807(-263263-1)ushort16位無符號整型065535(0216-1)uint32位無符號整型04294967295(0232-1)ulong64位無符號整型0

9、18446744073709551615(0264-1)整數(shù)類型實數(shù)類型C#基本類型類型說明范 圍decimal有28位小數(shù)的高精度浮點數(shù)1.010-287.91028single(float)單精度浮點類型1.510-453.41038double雙精度浮點類型5.010-3241.710308字符型 C#基本類型類型說明范 圍decimal有28位小數(shù)的高精度浮點數(shù)1.010-287.91028single(float)單精度浮點類型1.510-453.41038double雙精度浮點類型5.010-3241.7103082.1.1 值類型 1. 簡單類型 簡單類型包含:整數(shù)類型字符類型、

10、實數(shù)類型布爾類型 2.1.1 值類型 (1)整數(shù)類型 C#支持8種整型類型,分別是:byte、sbyte、short、int、long、ushort、uint和ulong C#基本類型類型說明范 圍byte8位無符號整型0255(028-1)sbyte8位有符號整型-128127(-2727-1)short16位有符號整型-3276832767(-215215-1)int32位有符號整型-21474836482147483647(-231231-1)long64位有符號整型-92233720368547758089223372036854775807(-263263-1)ushort16位無符

11、號整型065535(0216-1)uint32位無符號整型04294967295(0232-1)ulong64位無符號整型018446744073709551615(0264-1)2.1.1 值類型 (2)實數(shù)類型 C#中的實數(shù)型包含單精度浮點型(float)、雙精度浮點型(double)和固定精度浮點型(decimal)三種 C#基本類型類型說明范 圍decimal有28位小數(shù)的高精度浮點數(shù)1.010-287.91028single(float)單精度浮點類型1.510-453.41038double雙精度浮點類型5.010-3241.7103082.1.1 值類型 (2)實數(shù)類型浮點型數(shù)據(jù)

12、表示: 1.20f 雙精度型數(shù)據(jù)表示:12.5d 固定精度浮點型數(shù)據(jù)表示:25.7m 2.1.1 值類型 (3)字符型 使用的是Unicode編碼 . Unicode編碼是16位字符集,最多可表示65536個字符,并且ASC碼字符集被包含于Unicode字符集中,所以ASCII碼的字符值與相應(yīng)的Unicode編碼值是相同的。 2.1.1 值類型 (3)字符型 字符型的內(nèi)容要用單引號括起來,如果把字符放到雙引號中,那么編譯器會把它視為字符串,從而導(dǎo)致編譯錯誤。例如字符型數(shù)據(jù):A、a。 轉(zhuǎn)義序列字符說明單引號雙引號反斜杠0空a警告b退格f換頁n換行r回車t水平制表符v垂直制表符2.1.1 值類型

13、(4)布爾類型 布爾類型的數(shù)據(jù)只含有兩個數(shù)值:true和false,即變量為真或者為假。 2. 結(jié)構(gòu)類型(struct types)聲明一個結(jié)構(gòu)體類型的一般形式如下:struct 結(jié)構(gòu)體名 /成員列表 2. 結(jié)構(gòu)類型(struct types)struct People public string name; public int age; public string telephone; 2. 結(jié)構(gòu)類型(struct types)People m; = 劉藝丹; m.age = 7; m.telephone = Console.WriteLine(姓名:0,);

14、Console.WriteLine(年齡:0歲, m.age ); Console.WriteLine(電話號碼:0, m.telephone); Console.ReadLine();3. 枚舉類型 枚舉是指將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內(nèi)。例如: enum WeekDay Sun,Mon,Tue,Wed,Thu,Fri,Sat3. 枚舉類型 WeekDay w; w = WeekDay.Wed; Console.WriteLine(w); w = w + 2; Console.WriteLine(w); w = (WeekDay)4; Console.WriteL

15、ine(w); Console.ReadLine();2.1.2 引用類型 引用類型保存的是數(shù)據(jù)的存放位置,保存數(shù)據(jù)的空間大小就不一定相同 string s1 = MM; string s2 = Hello C# World!; 2.1.2 引用類型在C#中提供以下引用類型: 類類型 接口類型 委托類型 數(shù)組類型 字符串類型 object類型 在.NET框架中有兩種類型轉(zhuǎn)換:顯示轉(zhuǎn)換和隱式轉(zhuǎn)換。 隱式轉(zhuǎn)換是一種由CLR自動執(zhí)行的類型轉(zhuǎn)換,只有在確保不會丟失信息的情況下,才可以使用這種轉(zhuǎn)換;顯示轉(zhuǎn)換是一種需要明確請求編譯器執(zhí)行的類型轉(zhuǎn)換,否則可能會丟失信息或產(chǎn)生轉(zhuǎn)換錯誤。2.1.3 數(shù)據(jù)類型轉(zhuǎn)換

16、 1. 隱式轉(zhuǎn)換源類型目的類型sbyteshort,int,long,float,double或decimalbyteshort,ushort,int,uint,long,ulong,float,double或decimalshortint,long,float,double或decimalushortint,uint,long,ulong,float,double或decimalintlong,float,double或decimaluintlong,ulong,float,double或decimallongfloat,double或decimalcharushort,int,uint,l

17、ong,ulong,float,double或decimalfloatdoubleulongfloat,double或decimal下面是一個隱式轉(zhuǎn)換的示例:int X = 654321;long Y=X;2.1.3 數(shù)據(jù)類型轉(zhuǎn)換 顯示轉(zhuǎn)換的語法如下:類型 變量名 = (強制類型名) 變量名以下是顯示類型轉(zhuǎn)換的示例:int a = 168; short b = (short)a; 2. 顯示轉(zhuǎn)換string MyString = true;bool MyBool = Convert.ToBoolean(MyString); string newString = 123456789;int My

18、Int = Convert.ToInt32(newString); int64 MyInt64 = 123456789;int MyInt = Convert.ToInt32(MyInt64); double MyDouble = 42.72;int MyInt = Convert.ToInt32(MyDouble); 3使用System.Convert轉(zhuǎn)換數(shù)據(jù)類型 變量和常量是程序設(shè)計中常用的存儲數(shù)據(jù)的單元,變量是程序設(shè)計中值可以改變的量;常量是程序設(shè)計在編譯時就規(guī)定了值,不能再改變的量。 變量必須先定義后使用 2.2 變量和常量int x;/定義整形變量xint y;/定義整形變量y2.2

19、.1 變量定義變量的一般格式為: 訪問修飾符變量修飾符 變量的數(shù)據(jù)類型 變量名; 2.2.1 變量C#提供了下面幾種訪問修飾符: public,表示對變量的訪問不受任何限制; protected internal,表示可以在類的內(nèi)部訪問該變量; protected,表示只能在包含變量的類或派生類中對變量進行訪問; internal,表示變量的訪問范圍只能在當(dāng)前項目(project)或者是模塊內(nèi); private,表示變量的訪問范圍只能在包含它的類中。 2.2.1 變量(2)變量修飾符可用來區(qū)分變量是靜態(tài)變量還是其他變量 (3)變量名必須是符合語言規(guī)定的標(biāo)識符。 2.2.1 變量判斷下列變量定義

20、的對錯:int count;float 5s; bool using; bool using;string lbsina;string lbsina; string lb&sina; short countdrive; short Countdrive; short countDrive; 2.2.1 變量常數(shù)常量 常數(shù)常量使用關(guān)鍵字const來定義。常數(shù)常量所在的字段必須在定義時就進行賦值,這樣在編譯時字段的值就已經(jīng)固定,以后為類型創(chuàng)建的每個實例都共享這一常量。 例如定義一個圓周率常數(shù)常量: public const double PI= 3.14159; 2.2.2 常量2. 只讀常量 只

21、讀常量使用關(guān)鍵字readonly來定義。對只讀常量的賦值有兩種方法:一種是在字段定義時就進行賦值;一種是在類或結(jié)構(gòu)的構(gòu)造函數(shù)中進行初始化。 public readonly int x; public static readonly int y; 2.2.2 常量 表達(dá)式由操作數(shù)(即操作對象)和操作符組成。操作數(shù)可以是一個變量、常量或另一個表達(dá)式,操作符則指明作用于操作數(shù)的操作方式。依據(jù)所作用操作數(shù)的個數(shù),操作符可以分為3類: 一元操作符二元操作符三元操作符2.3 操作符和表達(dá)式 類別操作符操作符初級操作符(x) x.y f(x) ax x+ x-一元操作符+ - ! +x -x (T)x乘除操

22、作符* / %加減操作符+ -移位操作符關(guān)系操作符 = is as等式操作符= !=邏輯與操作符&邏輯異或操作符邏輯或操作符|條件與操作符&條件或操作符|條件操作符?:賦值操作符= *= /= %= += -= = &= = |= 算術(shù)操作符是用于組合數(shù)字、數(shù)值變量、數(shù)值字段和數(shù)值函數(shù)以得到另一個數(shù)字。 2.3.2 算術(shù)操作符 2.3.2 算術(shù)操作符 操作符操作符定義舉例說明+加法符號X=A+BX等于加后所得的結(jié)果-減法符號X=A-BX等于減后所得的結(jié)果*乘法符號X=A*BX等于乘后所得的結(jié)果/除法符號X=A/BX等于除后所得的商%取模符號X=A%BX等于除后所得的余數(shù) +(自增操作符)和-(

23、自減操作符),其作用是使變量的值自動增加1或者減少1 +a; -a; a+; a-; 2.3.2 算術(shù)操作符 分別說出下列X,Y的值 (1)int x=5,y=0;y=+x; (2)int x=5,y=0;y=x+; 2.3.2 算術(shù)操作符 2.3.3 賦值操作符操作符操作符定義舉例說明=賦值X=A+= 加X+=AX=X+A-= 減 X-=AX=X-A*= 乘 X*=AX=X*A/= 除 X/=AX=X/A%= 取余X%=AX=X%A2.3.4 關(guān)系操作符操作符說明=操作符檢驗兩個操作數(shù)AB是否相等。操作符檢驗第一個操作數(shù)A是否大于第二個操作數(shù)B。=操作符檢驗第一個操作數(shù)A是否大于或等于第二個

24、操作數(shù)B。=操作符檢驗第一個操作數(shù)A是否小于或等于第二個操作數(shù)B。2.3.5 邏輯操作符 操作符操作符定義舉例&“與”A & B|“或”A | B! “非”! A “異或”A B2.3.6 位運算符 符號描述按位取反&按位與|按位或右移按位異或1。按位取反運算符() “”運算符是一元運算符,是對二進制數(shù)進行按位取反,運算規(guī)則是將二進制數(shù)的0轉(zhuǎn)換為1,1轉(zhuǎn)換為0。 2.3.6 位運算符2. 按位與運算符 “&”運算符是二元運算符,在“按位與”運算的兩個操作數(shù)中,進行運算的兩個相應(yīng)位中任意一位為0時,運算結(jié)果的對應(yīng)位就會被置為0。 運算規(guī)則是:1&1=1,0&1=0,0&0=0 2.3.6 位運算

25、符3. 按位或運算符 “|”運算符是二元運算符,如果兩個操作數(shù)相應(yīng)的二進制位中有一個是1,那么相應(yīng)位的結(jié)果就是1,否則為0。運算規(guī)則是:1|1=1,1|0=1,0|0=0。 2.3.6 位運算符4. 按位異或運算符() “”運算符也稱為XOR運算符,是二元運算符,如果兩個操作數(shù)相應(yīng)的二進制位相同,那么相應(yīng)位的結(jié)果為0,否則為1。運算規(guī)則是:11=0,10=1,00=0。 2.3.6 位運算符5. 左移運算符() “) “”運算符是二元運算符,是將數(shù)的二進制位全部向右移動指定的位數(shù),如xn表示把變量x的每一位向右移n位。當(dāng)x為有符號數(shù)時,左邊空位補符號位上的值,這種位移稱為算術(shù)右移;當(dāng)x為無符號

26、數(shù)時,左邊空位補0,這種位移稱為邏輯右移。 2.3.6 位運算符劉兵 制作C# 程序設(shè)計第3章 結(jié)構(gòu)化程序設(shè)計 條件語句的語法與使用 各種循環(huán)語句的特點與使用方法 跳轉(zhuǎn)語句的使用3.1 選 擇 語 句 在C#中選擇語句又可分為兩種:if語句,主要用于分支比較少的情況;switch語句,主要用于多分支情況。 3.1.1 if語句 if (布爾表達(dá)式) 語句1 ; else 語句2;if (布爾表達(dá)式) 語句1; 3.1.1 if語句 判斷輸入的是大寫還是小寫字母 Console.Write(請輸入一個字母:); char c = (char)Console.Read(); if (Char.Is

27、Letter(c) if (Char.IsLower(c) Console.WriteLine(您輸入的是小寫字母!); else Console.WriteLine(您輸入的是大寫字母!); else Console.WriteLine(您輸入的不是字母!); 實數(shù)類型if (布爾表達(dá)式1) /語句1;else if (布爾表達(dá)式2) /語句2;else if (布爾表達(dá)式3) /語句3;else /語句4;程序代碼3-2 判斷輸入的是大寫、小寫字母或數(shù)字?jǐn)?shù)字Console.Write(請輸入一個字母:); char c = (char)Console.Read(); if (Char.Is

28、Upper(c) Console.WriteLine(輸入的是大寫字母.); else if (Char.IsLower(c) Console.WriteLine(輸入的是小寫字母.); else if (Char.IsDigit(c) Console.WriteLine(輸入的是數(shù)字.); else Console.WriteLine(輸入的既不是數(shù)字也不是字母.); 3.1.2 switch語句 switch (控制表達(dá)式)case 常量表達(dá)式1: 語句1; break;case 常量表達(dá)式2: 語句2;break;。default: 語句;break; 3.1.2 switch語句 Co

29、nsole.WriteLine(請輸入分?jǐn)?shù):); int x; if (!int.TryParse(Console.ReadLine(), out x) Console.WriteLine(輸入的不是數(shù)字!); else switch (x/10) case 10: Console.WriteLine(優(yōu)秀); break; case 9: Console.WriteLine(優(yōu)秀); break; case 8: Console.WriteLine(良好); break;case 7: Console.WriteLine(中); break;case 6: Console.WriteLine

30、(及格); break;default: Console.WriteLine(不及格); break; switch實例 3.2 循環(huán)語句循環(huán)語句用于在一定條件下多次重復(fù)執(zhí)行一組語句??梢愿鶕?jù)下列條件重復(fù)執(zhí)行語句:直到條件為真時、直到條件為假時、指定的次數(shù)、集合中的每個對象執(zhí)行一次。C#支持的循環(huán)結(jié)構(gòu)包括: for語句、foreach 語句、while語句 、do.while 語句。3.2.1 while語句 while 語句在開始循環(huán)體前先檢查該條件表達(dá)式的值,再執(zhí)行循環(huán)體,因此 while 循環(huán)的執(zhí)行次數(shù)可能是零次或多次 3.2.1 while語句 while(表達(dá)式) 語句塊; 3.2.

31、1 while語句 while語句的執(zhí)行順序是: 首先計算邏輯表達(dá)式的值; 若邏輯表達(dá)式的值為假(false)轉(zhuǎn)移至; 若邏輯表達(dá)式的值為真(true),則執(zhí)行循環(huán)體語句(循環(huán)體語句應(yīng)包括對循環(huán)條件的修改),循環(huán)體語句執(zhí)行完轉(zhuǎn)移至; 循環(huán)語句執(zhí)行完畢。 while語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; while (count = 100) sum += count count+; Console.WriteLine(1到100的累加和是:0,sum);3.2.2 dowhile語句do 語句是先執(zhí)行循環(huán)體,后判斷循環(huán)結(jié)束條件,也就是

32、說循環(huán)體至少被執(zhí)行一次。 do 循環(huán)體語句; while (邏輯表達(dá)式); dowhile語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; do sum += count; count+; while (count = 100); Console.WriteLine(1到100的累加和是:0,sum);3.3.3 for語句for循環(huán)語句適合用在已知循環(huán)次數(shù)的情況下 for (初始化;循環(huán)判斷;循環(huán)條件修改) /for循環(huán)語句循環(huán)體 for語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; for

33、 (count = 1; count = 100;count+ ) sum += count;Console.WriteLine(1到100的累加和是:0,sum);例:打印出斐波納契(Fibonacci)數(shù)列的前20項。 斐波納契數(shù)列源于古典的數(shù)學(xué)問題,理論上指數(shù)列的前兩項都為1,從第三項開始,數(shù)列的每一項為前兩項之和,如:1 1 2 3 5 8 13 21 34 55 89 可以先聲明兩個整形變量:f1和f2,初始化 f1 = 1,f2 = 1。 先輸出f1,f2,再使用公式f1 = f1 + f2f2 = f2 + f1 ; 再輸出f1,f2,再使用公式f1 = f1 + f2 / 循環(huán)

34、體f2 = f2 + f1 ; int i , f1 = 1, f2 = 1; for (i=1; i = 10; i+) Console.Write(0 1 , f1, f2);if (i % 2 = 0) Console.WriteLine(); f1 = f1 + f2; f2 = f2 + f1; 例:通過雙重循環(huán)來實現(xiàn)三角形。 程序思想是:外循環(huán)控制所輸出的三角形行數(shù),內(nèi)循環(huán)是兩個,前面一個內(nèi)循環(huán)輸出規(guī)定的空格數(shù),后面一個內(nèi)循環(huán)輸出指定的“*”個數(shù)。 Console.Write(請輸入行數(shù):);int lines = int.Parse(Console.ReadLine();Cons

35、ole.WriteLine();for (int i = 1; i = lines; i+)for (int k = 1; k = lines - i; k+)Console.Write( );for (int j = 1; j = a & ch = A & ch = Z)COUNT +;Console.WriteLine(字符共出現(xiàn)0次, COUNT); 3.3 跳轉(zhuǎn)語句 使用循環(huán)語句時,如果循環(huán)條件不被改變,循環(huán)就會一直進行下去,這就是“死循環(huán)”。避免“死循環(huán)”有兩種方法:一是改變循環(huán)條件,二是使用跳轉(zhuǎn)語句。跳轉(zhuǎn)語句能夠無條件地改變程序的控制權(quán)。3.3.1 break語句在switch,w

36、hile,dowhile,for或foreach語句的循環(huán)體中,使用break語句將直接退出當(dāng)前正在執(zhí)行的循環(huán)或switch語句。break語句的語法格式如下:break; 例:判斷一個正整數(shù)是否為素數(shù) Console.WriteLine(請輸入一個正整數(shù):); int x,i; bool flag = true; int.TryParse(Console.ReadLine(), out x); for (i = 2; i =Convert.ToInt32 ( Math.Sqrt(x); i+) if (x % i = 0) Console.WriteLine(0不是一個素數(shù), x); fla

37、g = false; break; if (flag ) Console.WriteLine(0是一個素數(shù), x);例:判斷一個正整數(shù)是否為素數(shù) Console.WriteLine(請輸入一個正整數(shù):); int i,x, l; bool flag ; int.TryParse(Console.ReadLine(), out x); for (i = 2; i = x; i+) flag = true; for (l = 2; l = Convert.ToInt32(Math.Sqrt(i); l+) if (i % l = 0) flag = false; break; if (flag)

38、Console.Write(0 , i); 3.3.2 continue語句 continue語句主要用在while、do-while、for或foreach等循環(huán)語句中,用于結(jié)束本次循環(huán),即跳過continue語句后面尚未執(zhí)行的語句。continue語句并不跳出當(dāng)前的循環(huán)體,只是終止本次循環(huán),接著進行下一次循環(huán)是否執(zhí)行的判定。continue語句格式: continue; 計算數(shù)列1+2+3+6+7+9+11+99之和(不包括4和5的倍數(shù)) int i, s = 0; for (i = 1; i 100; i+) if (i % 4 = 0)|(i % 5 = 0) continue; Co

39、nsole.Write(i); if (i 99) Console.Write(+); s += i; Console.Write(=); Console.WriteLine(s); goto語句可以直接跳轉(zhuǎn)到程序中用標(biāo)號所指定的另一條語句。標(biāo)號是一個標(biāo)識符后跟一個冒號,標(biāo)號用于指定程序的語句位置。 goto語句的語法格式如下: goto 標(biāo)號; 3.3.3 goto語句 string slb; Console.Write(請輸入18位身份證號碼:); do slb = Console.ReadLine(); if (slb.Length = 18) goto LB_OUT; Console.

40、Write(長度不正確n請重新輸入18位身份證號碼:); while(slb.Length != 18); LB_OUT: Console.Write(身份證號碼為: +slb); if (slb16 % 2 = 0) Console.WriteLine(, 性別為女); else Console.WriteLine(, 性別為男); 例:根據(jù)身份證號判斷性別 return語句用于方法的結(jié)束,并將控制權(quán)轉(zhuǎn)移給方法的調(diào)用程序。例:判斷奇偶數(shù) 3.3.4 return語句 Console.WriteLine(請輸入一個正整數(shù):); int x; int.TryParse(Console.ReadL

41、ine(), out x); if (CzMath.IsNumber(x) Console.WriteLine(0是一個偶數(shù), x); else Console.WriteLine(0不是一個奇數(shù), x); public class CzMath public static bool IsNumber(int x) if (x % 2 = 0) return true; else return false; 劉兵 制作C# 程序設(shè)計第3章 結(jié)構(gòu)化程序設(shè)計 條件語句的語法與使用 各種循環(huán)語句的特點與使用方法 跳轉(zhuǎn)語句的使用3.1 選 擇 語 句 在C#中選擇語句又可分為兩種:if語句,主要用于分

42、支比較少的情況;switch語句,主要用于多分支情況。 3.1.1 if語句 if (布爾表達(dá)式) 語句1 ; else 語句2;if (布爾表達(dá)式) 語句1; 3.1.1 if語句 判斷輸入的是大寫還是小寫字母 Console.Write(請輸入一個字母:); char c = (char)Console.Read(); if (Char.IsLetter(c) if (Char.IsLower(c) Console.WriteLine(您輸入的是小寫字母!); else Console.WriteLine(您輸入的是大寫字母!); else Console.WriteLine(您輸入的不是

43、字母!); 實數(shù)類型if (布爾表達(dá)式1) /語句1;else if (布爾表達(dá)式2) /語句2;else if (布爾表達(dá)式3) /語句3;else /語句4;程序代碼3-2 判斷輸入的是大寫、小寫字母或數(shù)字?jǐn)?shù)字Console.Write(請輸入一個字母:); char c = (char)Console.Read(); if (Char.IsUpper(c) Console.WriteLine(輸入的是大寫字母.); else if (Char.IsLower(c) Console.WriteLine(輸入的是小寫字母.); else if (Char.IsDigit(c) Console

44、.WriteLine(輸入的是數(shù)字.); else Console.WriteLine(輸入的既不是數(shù)字也不是字母.); 3.1.2 switch語句 switch (控制表達(dá)式)case 常量表達(dá)式1: 語句1; break;case 常量表達(dá)式2: 語句2;break;。default: 語句;break; 3.1.2 switch語句 Console.WriteLine(請輸入分?jǐn)?shù):); int x; if (!int.TryParse(Console.ReadLine(), out x) Console.WriteLine(輸入的不是數(shù)字!); else switch (x/10) c

45、ase 10: Console.WriteLine(優(yōu)秀); break; case 9: Console.WriteLine(優(yōu)秀); break; case 8: Console.WriteLine(良好); break;case 7: Console.WriteLine(中); break;case 6: Console.WriteLine(及格); break;default: Console.WriteLine(不及格); break; switch實例 3.2 循環(huán)語句循環(huán)語句用于在一定條件下多次重復(fù)執(zhí)行一組語句??梢愿鶕?jù)下列條件重復(fù)執(zhí)行語句:直到條件為真時、直到條件為假時、指定的

46、次數(shù)、集合中的每個對象執(zhí)行一次。C#支持的循環(huán)結(jié)構(gòu)包括: for語句、foreach 語句、while語句 、do.while 語句。3.2.1 while語句 while 語句在開始循環(huán)體前先檢查該條件表達(dá)式的值,再執(zhí)行循環(huán)體,因此 while 循環(huán)的執(zhí)行次數(shù)可能是零次或多次 3.2.1 while語句 while(表達(dá)式) 語句塊; 3.2.1 while語句 while語句的執(zhí)行順序是: 首先計算邏輯表達(dá)式的值; 若邏輯表達(dá)式的值為假(false)轉(zhuǎn)移至; 若邏輯表達(dá)式的值為真(true),則執(zhí)行循環(huán)體語句(循環(huán)體語句應(yīng)包括對循環(huán)條件的修改),循環(huán)體語句執(zhí)行完轉(zhuǎn)移至; 循環(huán)語句執(zhí)行完畢。

47、 while語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; while (count = 100) sum += count count+; Console.WriteLine(1到100的累加和是:0,sum);3.2.2 dowhile語句do 語句是先執(zhí)行循環(huán)體,后判斷循環(huán)結(jié)束條件,也就是說循環(huán)體至少被執(zhí)行一次。 do 循環(huán)體語句; while (邏輯表達(dá)式); dowhile語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; do sum += count; count+; while

48、(count = 100); Console.WriteLine(1到100的累加和是:0,sum);3.3.3 for語句for循環(huán)語句適合用在已知循環(huán)次數(shù)的情況下 for (初始化;循環(huán)判斷;循環(huán)條件修改) /for循環(huán)語句循環(huán)體 for語句實現(xiàn)100以內(nèi)的數(shù)字累加 int count,sum; count = 1; sum = 0; for (count = 1; count = 100;count+ ) sum += count;Console.WriteLine(1到100的累加和是:0,sum);例:打印出斐波納契(Fibonacci)數(shù)列的前20項。 斐波納契數(shù)列源于古典的數(shù)學(xué)問

49、題,理論上指數(shù)列的前兩項都為1,從第三項開始,數(shù)列的每一項為前兩項之和,如:1 1 2 3 5 8 13 21 34 55 89 可以先聲明兩個整形變量:f1和f2,初始化 f1 = 1,f2 = 1。 先輸出f1,f2,再使用公式f1 = f1 + f2f2 = f2 + f1 ; 再輸出f1,f2,再使用公式f1 = f1 + f2 / 循環(huán)體f2 = f2 + f1 ; int i , f1 = 1, f2 = 1; for (i=1; i = 10; i+) Console.Write(0 1 , f1, f2);if (i % 2 = 0) Console.WriteLine();

50、f1 = f1 + f2; f2 = f2 + f1; 例:通過雙重循環(huán)來實現(xiàn)三角形。 程序思想是:外循環(huán)控制所輸出的三角形行數(shù),內(nèi)循環(huán)是兩個,前面一個內(nèi)循環(huán)輸出規(guī)定的空格數(shù),后面一個內(nèi)循環(huán)輸出指定的“*”個數(shù)。 Console.Write(請輸入行數(shù):);int lines = int.Parse(Console.ReadLine();Console.WriteLine();for (int i = 1; i = lines; i+)for (int k = 1; k = lines - i; k+)Console.Write( );for (int j = 1; j = a & ch =

51、A & ch = Z)COUNT +;Console.WriteLine(字符共出現(xiàn)0次, COUNT); 3.3 跳轉(zhuǎn)語句 使用循環(huán)語句時,如果循環(huán)條件不被改變,循環(huán)就會一直進行下去,這就是“死循環(huán)”。避免“死循環(huán)”有兩種方法:一是改變循環(huán)條件,二是使用跳轉(zhuǎn)語句。跳轉(zhuǎn)語句能夠無條件地改變程序的控制權(quán)。3.3.1 break語句在switch,while,dowhile,for或foreach語句的循環(huán)體中,使用break語句將直接退出當(dāng)前正在執(zhí)行的循環(huán)或switch語句。break語句的語法格式如下:break; 例:判斷一個正整數(shù)是否為素數(shù) Console.WriteLine(請輸入一個正

52、整數(shù):); int x,i; bool flag = true; int.TryParse(Console.ReadLine(), out x); for (i = 2; i =Convert.ToInt32 ( Math.Sqrt(x); i+) if (x % i = 0) Console.WriteLine(0不是一個素數(shù), x); flag = false; break; if (flag ) Console.WriteLine(0是一個素數(shù), x);例:判斷一個正整數(shù)是否為素數(shù) Console.WriteLine(請輸入一個正整數(shù):); int i,x, l; bool flag ;

53、 int.TryParse(Console.ReadLine(), out x); for (i = 2; i = x; i+) flag = true; for (l = 2; l = Convert.ToInt32(Math.Sqrt(i); l+) if (i % l = 0) flag = false; break; if (flag) Console.Write(0 , i); 3.3.2 continue語句 continue語句主要用在while、do-while、for或foreach等循環(huán)語句中,用于結(jié)束本次循環(huán),即跳過continue語句后面尚未執(zhí)行的語句。continue

54、語句并不跳出當(dāng)前的循環(huán)體,只是終止本次循環(huán),接著進行下一次循環(huán)是否執(zhí)行的判定。continue語句格式: continue; 計算數(shù)列1+2+3+6+7+9+11+99之和(不包括4和5的倍數(shù)) int i, s = 0; for (i = 1; i 100; i+) if (i % 4 = 0)|(i % 5 = 0) continue; Console.Write(i); if (i 99) Console.Write(+); s += i; Console.Write(=); Console.WriteLine(s); goto語句可以直接跳轉(zhuǎn)到程序中用標(biāo)號所指定的另一條語句。標(biāo)號是一個

55、標(biāo)識符后跟一個冒號,標(biāo)號用于指定程序的語句位置。 goto語句的語法格式如下: goto 標(biāo)號; 3.3.3 goto語句 string slb; Console.Write(請輸入18位身份證號碼:); do slb = Console.ReadLine(); if (slb.Length = 18) goto LB_OUT; Console.Write(長度不正確n請重新輸入18位身份證號碼:); while(slb.Length != 18); LB_OUT: Console.Write(身份證號碼為: +slb); if (slb16 % 2 = 0) Console.WriteLin

56、e(, 性別為女); else Console.WriteLine(, 性別為男); 例:根據(jù)身份證號判斷性別 return語句用于方法的結(jié)束,并將控制權(quán)轉(zhuǎn)移給方法的調(diào)用程序。例:判斷奇偶數(shù) 3.3.4 return語句 Console.WriteLine(請輸入一個正整數(shù):); int x; int.TryParse(Console.ReadLine(), out x); if (CzMath.IsNumber(x) Console.WriteLine(0是一個偶數(shù), x); else Console.WriteLine(0不是一個奇數(shù), x); public class CzMath pu

57、blic static bool IsNumber(int x) if (x % 2 = 0) return true; else return false; 劉兵 制作C# 程序設(shè)計第4章 數(shù)組與字符串?dāng)?shù)組的定義和初始化 數(shù)組元素的訪問字符串的定義 字符串的基本操作 4.1 函數(shù) 4.1.1 函數(shù)的基本概念函數(shù)是可以完成一定功能,可以重復(fù)執(zhí)行的代碼塊。同時在面向?qū)ο蟪绦蛟O(shè)計中,函數(shù)也叫方法。函數(shù)可以使代碼的可讀性更高,可以創(chuàng)建多用途的代碼。顯示1N,其中N是由用戶來定義其初值 static void Display(int M) for (int i = 0; i M; i+) Consol

58、e.WriteLine(i); static void Main(string args) int N = 5; Display(N);函數(shù)一般定義的語法格式如下:函數(shù)修飾符 返回類型 函數(shù)名 (數(shù)據(jù)類型 數(shù)據(jù)變量名,) /函數(shù)體函數(shù)的執(zhí)行過程 static void myFunction() Console.WriteLine( 進入調(diào)用函數(shù)); Console.WriteLine( 運行函數(shù)體); Console.WriteLine( 退出函數(shù)調(diào)用); static void Main(string args) Console.WriteLine(在主程序中運行。); myFunction

59、();/函數(shù)調(diào)用 Console.WriteLine(返回主程序); Console.ReadLine(); 4.1.2 函數(shù)的返回值 函數(shù)可以有各種形式的返回值,其格式如下:static 返回數(shù)據(jù)類型 函數(shù)名()return 返回數(shù)據(jù); static int myFunction() return 168; static void Main(string args) int count; count = myFunction(); Console.WriteLine(函數(shù)返回的值是:0,count ); Console.ReadLine(); 4.1.3 函數(shù)的參數(shù) 在定義函數(shù)時,如果參數(shù)的

60、個數(shù)不只一個時,參數(shù)之間要用逗號分開。例如定義一個兩個數(shù)相加的函數(shù)addFunction:static int addFunction(int x,int y) return x+y; 例:調(diào)用兩個數(shù)相加函數(shù)的完整程序 static int addFunction(int x,int y) return x+y; static void Main(string args) int a,b,sum; a = 12; b = 24; sum = addFunction(a, b); Console.WriteLine(a和b兩數(shù)相加的結(jié)果是:0,sum ); Console.ReadLine();

溫馨提示

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

評論

0/150

提交評論