版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C#基礎+V:spydf_yin
進行個人輔導
C#基礎+V:spydf_yin通過這一節(jié)課,可以使聽眾對.NET基本概況和C#開發(fā)語言基本結構和語法有一個概括性的認識。通過這一節(jié)課,可以使聽眾對.NET基本概況和C#開發(fā)語言基本1234.NET基礎語言基礎基本類型流程控制1234.NET基礎語言基礎基本類型流程控制.NET基礎.NET基礎.NET的定義定義.NET技術是微軟公司推出的一個全新概念,“它代表了一個集合、一個環(huán)境和一個可以作為平臺支持下一代Internet的可編程結構?!弊罱K目標.NET的最終目標就是讓用戶在任何地方、任何時間,以及利用任何設備都能訪問所需的信息、文件和程序.NET平臺.NET開發(fā)平臺包括編程語言(C#,VisualBasic,VisualC++).NET開發(fā)工具(VisualStudio.NET).NET框架(.NETFramework)….NET的定義定義.NET技術是微軟公司推出的一個全新概念,為什么選擇.NET可以同時使用多種開發(fā)語言進行開發(fā)可以利用方便的開發(fā)工具書寫更少的代碼充分利用Windows系統(tǒng)的應用程序服務功能,如先進快速的事件處理和消息隊列機制軟件服務的發(fā)布良好的繼承性利用ADO.NET,數(shù)據(jù)訪問更加簡單為什么選擇.NET可以同時使用多種開發(fā)語言進行開發(fā).NET架構操作系統(tǒng)公共語言運行時(CLR)VC++.NetC#VB.NetF#….NetFramework
類庫(FCL).NET架構操作系統(tǒng)公共語言運行時(CLR)VC++.NeCLR能提供什么?CLR是CommonLanguageRuntime的簡寫,中文翻譯是公共語言運行。全權負責托管代碼的執(zhí)行(主要有內(nèi)存管理和垃圾收集),是.NET的基石。CLR兩個基礎核心:元數(shù)據(jù):依賴元數(shù)據(jù)進行內(nèi)存管理和垃圾收集等等MSIL中間語言:使得.NET具有跨語言的集成的能力。CLR所支持的語言都由相對應的編譯器編譯為MSIL指令。再由CLR中的JIT組件編譯MSIL為機器語言,最后由CLR托管執(zhí)行。CLR能提供什么?CLR是CommonLanguageR.NETFramework包含一個非常大的代碼庫,可以在客戶語言(如C#)中通過面向?qū)ο蟮木幊碳夹g來使用這些代碼.這個庫分為不同的模塊,可以根據(jù)需要來使用其中的各個部分.如,一個模塊包含windows應用程序的構件,另一個模塊包含web開發(fā)的代碼塊等等.定義了一些基本數(shù)據(jù)類型,以便使用.NETFramework在各種語言之間進行交互作用,這稱為通用類型系統(tǒng)(CommonTypeSystem,CTS).NETFramework包含一個非常大的代碼庫,可以在客.NET程序編譯運行流程C#源碼F#源碼C++源碼VB.NET源碼等等程序集(元數(shù)據(jù)和MSIL指令)[exe或dll]編譯過程機器代碼JIT編譯運行.NET程序編譯運行流程C#源碼F#源碼C++源碼VB.NE語言基礎語言基礎簡介C#是一種簡潔、現(xiàn)代、面向?qū)ο笄翌愋桶踩木幊陶Z言。C#特性:垃圾回收(Garbagecollection)將自動回收不再使用的對象所占用的內(nèi)存異常處理(exceptionhandling)提供了結構化和可擴展的錯誤檢測和恢復方法類型安全(type-safe)的語言設計則避免了讀取未初始化的變量、數(shù)組索引超出邊界或執(zhí)行未經(jīng)檢查的類型強制轉(zhuǎn)換等情形C#是面向?qū)ο蟮恼Z言,然而C#進一步提供了對面向組件編程的支持。簡介C#是一種簡潔、現(xiàn)代、面向?qū)ο笄翌愋桶踩木幊陶Z言。注釋(一)注釋就是寫在源代碼中的描述信息,用來幫助開發(fā)人員閱讀源代碼的。注釋信息會在編譯過程中自動過濾掉,不會出現(xiàn)在程序集中。C#支持三種注釋格式:單行注釋:以“//”開始,此行后續(xù)任何文本都作為注釋內(nèi)容。多行注釋:以“/*”開始,“*/”結束??煽缭蕉嘈?。XML注釋:以“///”開始,后面緊跟XML樣式元素,用來描述類型方法,屬性,事件,索引器等等信息,VisualStudio中智能提示的描述信息依賴此注釋,也可在編譯時期導出這些XML格式的注釋到一個XML文檔注釋(一)注釋就是寫在源代碼中的描述信息,用來幫助開發(fā)人員閱注釋(二)class
Program{
///
<summary>
///Main方法
///
</summary>
///
<paramname="args">命令行參數(shù)</param>
static
voidMain(string[]args)
{
/*聲明并初始化一個變量**/
stringinfo="helloworld";
//打印helloworld
System.Console.WriteLine(info);
}}XML格式注釋多行注釋/*注釋內(nèi)容*/單行注釋//注釋內(nèi)容注釋(二)classProgramXML格式注釋多行注釋HelloWorld
程序(一)usingSystem;namespaceNotepad{ classHelloWorld { publicstaticvoidMain() {
Console.WriteLine("HelloWorld"); } }}聲明HelloWorld類程序入口點,Main的返回類型為void控制臺類的WriteLine()方法用于顯示輸出結果導入System命名空間聲明命名空間Notepad將文件保存為HelloWorld.csHelloWorld程序(一)usingSystem;HelloWorld
程序(二)命名空間:C#程序是利用命名空間組織起來的。一種“邏輯文件夾”的概念。開發(fā)人員可以定義自己的命名空間。常用的命名空間如下:命名空間說明System一些基本數(shù)據(jù)類型System.Data處理數(shù)據(jù)存取和管理,在定義
ADO.NET技術中扮演重要角色System.IO管理對文件和流的同步和異步訪問System.Windows處理基于窗體的窗口的創(chuàng)建System.Reflection包含從程序集讀取元數(shù)據(jù)的類System.Threading包含用于多線程編程的類System.Collections包含定義各種對象集的接口和類HelloWorld程序(二)命名空間:C#程序是利用標識符(一)
標識符是指標識某一個東西的一個名字符號比如:變量名,類型名,參數(shù)名等等。標識符以字母或者下劃線(_)開頭,其余部分允許出現(xiàn)數(shù)字和Unicode轉(zhuǎn)義序列。關鍵字在以@為前綴的情況下也可以作為標識符。C#嚴格區(qū)分字母大小寫。如Age和age是不同的標識符。標識符(一) 標識符(二)示例是否有效說明123否不能以數(shù)字開頭n123是字母開頭,混合數(shù)字N123是大些字母N,所以和n123是不同的標識符_n123是下劃線加字符和數(shù)字int否int是關鍵字@int是@做前綴加關鍵字n\u0061me是支持Unicode轉(zhuǎn)義序列標識符(二)示例是否有效說明123否不能以數(shù)字開頭n123是關鍵字關鍵字是一組特殊的“標識符”,由系統(tǒng)定義,供開發(fā)者使用。因而我們不能再次定義關鍵字為標識符(以@字符開頭時除外)。比較常用的有using、class、static、public、get*、set*、var*等等。其中加“*”的比較特殊些,稱作上下文關鍵字,這些關鍵字只有在特殊的位置才會有意義。如get和set只有在屬性中才有意義、var只能用在局部變量環(huán)境下。關鍵字關鍵字是一組特殊的“標識符”,由系統(tǒng)定義,供開發(fā)者使用聲明&初始化
聲明一個變量的語法:
數(shù)據(jù)類型變量名;//變量名須為有效標識符如: stringname;聲明并初始化一個變量:
數(shù)據(jù)類型變量名=初始化值;如:
stringname=“張三”;聲明&初始化 聲明一個變量的語法:運算符(一)運算符類型常用運算符示例算數(shù)運算符+-*/
%inti=1,j=2;i+j;//結果3關系運算符><>=<===!=i>j;//結果false賦值運算符=+=-=*=/=%=i+=j;//結果3[i=i+j;的簡寫形式]自運算符前置:++--后置:++--intn=1;intm;前置:m=++n;//結果m=2,n=2后置:m=n++;//結果m=1,n=2成員訪問運算符.[].:調(diào)用對象成員[]:訪問數(shù)組元素或索引器邏輯運算符!&&||boola=true;!a;//結果false常用的運算符:運算符(一)運算符類型常用運算符示例算數(shù)運算符+-*/運算符(二)大多數(shù)運算符都可以重載(overload)。運算符重載允許指定用戶定義的運算符實現(xiàn)來執(zhí)行運算,這些運算的操作數(shù)中至少有一個,甚至所有操作數(shù)都屬于用戶定義的類類型或結構類型。運算符是有優(yōu)先級的,優(yōu)先級高的先運算。運算符(二)大多數(shù)運算符都可以重載(overload)。運表達式表達式由操作元(operand)和運算符(operator)構成。運算元可以是常數(shù)、對象、變量、常量、字段等等。運算符可以是上節(jié)提到的一些運算符。當表達式包含多個運算符時,運算符的優(yōu)先級(precedence)控制各運算符的計算順序。例如,表達式x+y*z按x+(y*z)計算。表達式表達式由操作元(operand)和運算符(op演示
HelloWorld演示 HelloWorld基本類型基本類型變量(一)變量(variable),言外之意即是可變的,用來存儲程序所需的數(shù)據(jù)。聲明一個變量的語法結構如下:
//變量名必須是有效的標識符
數(shù)據(jù)類型變量名;也可以在聲明的同時初始化該變量:
//變量名必須是有效的標識符 //值必須是與變量聲明的數(shù)據(jù)類型兼容。
數(shù)據(jù)類型變量名=值;變量(一)變量(variable),言外之意即是可變的,變量(二)class
Program{
static
voidMain(string[]args)
{
//聲明變量
intage;
//為變量age賦值age=18;
//聲明name并初始化為李四
stringname="李四";
}}變量(二)classProgram常量(一)常量:一經(jīng)初始化就不會再次被改變的“變量”,在程序的整個運行過程中不允許改變它的值。編譯時常量:const數(shù)據(jù)類型常量名=值;編譯時常量做為類成員時總是作為static成員出現(xiàn)。不允許自己加static關鍵字。編譯時常量的值必須是在編譯時期能確定下來的,只支持一些基本數(shù)據(jù)類型。運行時常量:readonly數(shù)據(jù)類型常量名=值;運行時常量可以彌補編譯時常量不能定義復雜數(shù)據(jù)類型的缺點。常量(一)常量:一經(jīng)初始化就不會再次被改變的“變量”,在程序常量(二)class
Program{
//正確,string為基本數(shù)類型
const
stringNAME_CONST="conststring";
//錯誤,Program為自定義復雜類型
const
ProgramPROGRAM_CONST=new
Program();
//正確,
readonly
stringNAME_READONLY="readonlystring";
//正確,可定義任意數(shù)據(jù)類型
readonly
ProgramPROGRAM_READONLY=new
Program();}常量(二)classProgram結構(一)結構(struct)是能夠包含數(shù)據(jù)成員和函數(shù)成員的數(shù)據(jù)結構。結構類型的變量直接存儲該結構的數(shù)據(jù)。所有結構類型都隱式地從類型System.ValueType繼承。System.ValueType繼承自System.Object。結構是值類型,不需要在堆分配。結構類型不允許繼承。結構(一)結構(struct)是能夠包含數(shù)據(jù)成員和函數(shù)成結構(二)//用struct修飾,表示一個結構類型struct
Point{
public
intx;
public
inty;
publicPoint(intx,inty)
{
this.x=x;
this.y=y;
}}結構(二)//用struct修飾,表示一個結構類型枚舉(一)枚舉(enum)是具有一組命名常量的獨特的值(結構)類型每個枚舉類型都有一個相應的整型類型,稱為該枚舉類型的基礎類型(underlyingtype)。沒有顯式聲明基礎類型的枚舉類型所對應的基礎類型是int。枚舉類型的存儲格式和取值范圍由其基礎類型確定。所有枚舉類型默認繼承自System.Enum類型,System.Enum繼承自System.ValueType。故枚舉為結構類型。枚舉(一)枚舉(enum)是具有一組命名常量的獨特的值(枚舉(二)//:long表括示基礎類型是long//如果不寫則默認為intenum
Alignment:long{
//=也可不寫,默認則是以0開始,依次加1Left=-1,Center=0,Right=1}枚舉(二)//:long表括示基礎類型是long枚舉(三)public
class
Test{
static
voidMain()
{
//初始化一個枚舉變量
Alignment
alignment=Alignment.Left;
//輸出:Left
Console.WriteLine(alignment);
//輸出:-1
Console.WriteLine((long)alignment);
//獲得基礎類型
Type
underlyingType=Enum.GetUnderlyingType(typeof(Alignment));
//輸出:System.Int64
//解釋:[long關鍵字映射的類型為System.Int64]
Console.WriteLine(underlyingType.FullName);
}}枚舉(三)publicclassTest數(shù)組(一)數(shù)組(array)是一種包含若干變量的數(shù)據(jù)結構,這些變量都可以通過計算索引進行訪問。數(shù)組中包含的變量(元素(element))具有相同的類型,該類型稱為數(shù)組的元素類型(elementtype)。數(shù)組類型為引用類型,因此數(shù)組變量的聲明只是為數(shù)組實例的引用留出空間。在運行時使用new運算符動態(tài)創(chuàng)建(須指定長度),長度在該實例的生存期內(nèi)是固定不變的。數(shù)組元素的索引范圍從0到Length-1。new運算符自動將數(shù)組的元素初始化為它們的默認值,例如將所有數(shù)值類型初始化為零,將所有引用類型初始化為null。數(shù)組(一)數(shù)組(array)是一種包含若干變量的數(shù)據(jù)結構數(shù)組(二)C#支持一維、多維、交錯數(shù)組。數(shù)組下標一般是從0開始。也提供有其他方式支持非從0下標開始的數(shù)組。System.Array類型是所有數(shù)組類型的抽象基類型。訪問數(shù)組元素使用下標方式:array[索引]數(shù)組(二)C#支持一維、多維、交錯數(shù)組。數(shù)組(三)public
class
Test{
static
voidMain()
{
//元素個數(shù)為3的int類型數(shù)組
int[]ages=new
int[3];
//3X3的多維數(shù)組
int[,]i=new
int[3,3];
//交錯數(shù)組
int[][]j=new
int[2][];j[0]=new
int[2]{3,4};j[1]=new
int[3];
//輸出:4
Console.WriteLine(j[0][1]);
}}數(shù)組(三)publicclassTest字符串處理(一)寫程序中很大一部分的時間都是在和字符串打交道。微軟給出的.NET類庫中也給出了一些字符串處理的類型。C#中的常用字符串處理類:System.StringSystem.Text.StringBuilder利用String類可以進行字符串的創(chuàng)建,截取,替換,合并等等操作。也可以用“+”方便的進行字符串的合并。大寫String與小寫string是完全相同的,大寫是指.NET類庫中的String類型,小寫是C#關鍵字,也是對應到String這個類型上去的。比如在C#中int和Int32也是這樣對應的。字符串處理(一)寫程序中很大一部分的時間都是在和字符串打交道字符串處理(二)String的特別之處:不變性;讀共享,寫復制;字符串駐留技術;String是引用類型,但其值確是不可變的,即是指已經(jīng)賦值就不能再改變。針對字符串的一些操作(如合并、截?。┒紩a(chǎn)生出新的String對象。由于寫復制的特性,在一些需要大量合并字符串的場合就會產(chǎn)生出很多臨時性的String對象,然后又被丟棄,浪費掉不少內(nèi)存。所以類庫中有另一個System.Text.StringBuilder類型來高效的拼接字符串。字符串處理(二)String的特別之處:字符串處理(三)public
class
Test{
static
voidMain()
{
Stringname="[小明";
//合并字符串name=name+"20歲";name=name+"男生]";
Console.WriteLine(name);//[小明20歲男生]
//替換空格為"-"name=name.Replace('','-');
Console.WriteLine(name);//[-小明-20歲-男生------]
}}字符串處理(三)publicclassTest字符串處理(四)public
class
Test{
static
voidMain()
{System.Text.StringBuilderstringBuilder=
newSystem.Text.StringBuilder();
for(inti=0;i<1000;i++)
{
//追加字符串stringBuilder.Append(i.ToString()+"|");
}
//輸出:1|2|3|4|5.....999|
Console.WriteLine(stringBuilder.ToString());
}}字符串處理(四)publicclassTest委托(一)委托類型(delegatetype)表示對具有特定參數(shù)列表和返回類型的方法的引用。通過委托,我們能夠?qū)⒎椒ㄗ鳛閷嶓w賦值給變量和作為參數(shù)傳遞。委托類似于在其他某些語言中的函數(shù)指針的概念,但是與函數(shù)指針不同,委托是面向?qū)ο蟮模⑶沂穷愋桶踩?。委托聲明定義一個從System.Delegate類派生的類。委托實例封裝了一個調(diào)用列表,該列表列出了一個或多個方法,每個方法稱為一個可調(diào)用實體。對于實例方法,可調(diào)用實體由該方法和一個相關聯(lián)的實例組成。對于靜態(tài)方法,可調(diào)用實體僅由一個方法組成。用一個適當?shù)膮?shù)集來調(diào)用一個委托實例,就是用此給定的參數(shù)集來調(diào)用該委托實例的每個可調(diào)用實體。委托(一)委托類型(delegatetype)表示對具委托(二)--特性將方法作為參數(shù)傳遞通常傳遞的是變量(字段),委托則是傳遞方法回調(diào)方法底層代碼定義方法簽名的類型(委托),定義委托成員上層代碼創(chuàng)建方法,創(chuàng)建委托實例,讓需要調(diào)用的方法傳給底層底層通過調(diào)用委托,調(diào)用上層方法多路廣播可以同時維持多個方法的引用(+=、-=)委托是類型安全的DelegateAda;DelegateBdb;即使函數(shù)簽名相同,也不能執(zhí)行da=db;委托類型都是密封的(sealed)不能繼承委托(二)--特性將方法作為參數(shù)傳遞委托(三)--重要成員Targetobject類型的屬性,指向回調(diào)函數(shù)所屬的對象實例(對于實例方法來言)引用的方法是靜態(tài)方法時,Target為nullMethodSystem.Reflection.MethodInfo類型的屬性,指向回調(diào)函數(shù)Invoke函數(shù),同步執(zhí)行委托BeginInvoke開始異步執(zhí)行委托EndInvoke完成異步執(zhí)行委托(三)--重要成員Target委托(四)--運算操作myDelegate+=new
MyDelegate(AddNumber.add2);將一個委托A與另一個委托B連接,將連接后的新委托,在賦給原委托A實質(zhì)是使用的System.Delegate的靜態(tài)方法CombinemyDelegate=(MyDelegate)Delegate.Combine(myDelegate,new
MyDelegate(AddNumber.add2));
myDelegate-=new
MyDelegate(AddNumber.add2);一個委托A的調(diào)用列表中移除另一個委托B的最后一個調(diào)用列表,將移除后的新委托,再賦給原委托A實質(zhì)是使用的System.Delegate的靜態(tài)方法Remove
myDelegate=(MyDelegate)Delegate.Remove(myDelegate,new
MyDelegate(AddNumber.add2));委托(四)--運算操作myDelegate+=new委托(五)class
Test{
//聲明一個委托
delegate
double
Function(doublex);
static
voidMain()
{
//創(chuàng)建一個委托對象
Functionf=new
Function(Square);
//利用f攜帶的“Square”方法,所以可以用f進行間接調(diào)用Square
//也可以寫f(5),這是對f.Invoke(5)的語法簡化
doubleresult=f.Invoke(5);
System.Console.WriteLine(result);//25
}
static
doubleSquare(doublex)
{
returnx*x;
}}委托(五)classTest事件(一).NET的事件模型建立在委托的機制之上。定義事件成員的類型允許類型(或者類型的實例)在某些特定事件發(fā)生時通知其他對象。事件為類型提供了一下三種能力:允許對象登記該事件;允許對象注銷該事件;允許定義事件的對象維持一個登記對象的集合,并在某些特定的事件反生時通知這些對象。事件(一).NET的事件模型建立在委托的機制之上。定義事件成事件(二)//聲明一個委托public
delegate
void
ComingEvevtHander
(objectsender,EventArgse);//老鼠public
class
Mouse{
//此方法原型與ComingEvevtHander委托匹配
public
voidSpeak(Objectsender,EventArgse)
{
Console.WriteLine("貓來了,我要逃跑了!");
}}事件(二)//聲明一個委托事件(三)//貓public
class
Cat{
//聲明一個事件
public
event
ComingEvevtHanderComing;
//觸發(fā)事件
public
voidOnComing(EventArgse)
{
if(Coming!=null)
{Coming(this,e);
}
}}事件(三)//貓事件(四)public
class
Test{
static
voidMain()
{
//初始化一只貓
Catcat=new
Cat();
//初始化一只老鼠
Mousemouse=new
Mouse();
//注冊事件cat.Coming+=new
ComingEvevtHander(mouse.Speak);
//貓來了
//調(diào)用注冊的方法,輸出:貓來了,我要逃跑了!cat.OnComing(EventArgs.Empty);
}}事件(四)publicclassTest流程控制流程控制三種基本流程控制分類常用順序普通代碼分支Ifelse、switchcase循環(huán)for、foreach、dowhile、while三種基本流程控制分類常用順序普通代碼分支Ifelse、swIfelse(一)If語句語法: if(布爾條件) { //語句。。。 }布爾條件假真//語句。。。Ifelse(一)If語句語法:布爾條件假真//語句。。。Ifelse(二)Ifelse語句語法: if(布爾條件) { //語句1。。 } else{ //語句2。。 }布爾條件真//語句1。。假//語句2。。Ifelse(二)Ifelse語句語法:布爾條件真//語Ifelse(三)Ifelse語句語法: if(布爾條件1) { //語句1。。 } elseif(布爾條件2){ //語句2。。 }布爾條件1真//語句1。。假//語句2。。布爾條件2真假Ifelse(三)Ifelse語句語法:布爾條件1真//Ifelse(三)
static
voidMain(string[]args)
{
bool
isTrue=true;
if(isTrue)
{
//執(zhí)行
System.Console.WriteLine("true");
}
if(!isTrue)
{
//不執(zhí)行
System.Console.WriteLine("true");
}
elseif(true){
//執(zhí)行
System.Console.WriteLine("false");
}
}Ifelse(三)staticvoidMain(stSwitchcase(一)Switchcase是多分支選擇語句,用來實現(xiàn)多分支選擇結構。適合于從一組互斥的分支中選擇一個來執(zhí)行。類似于if語句,但switch語句可以一次將變量與多個值進行比較,而不是僅比較一個。switch參數(shù)后面跟一組case子句,如果switch參數(shù)中的值與某一個case后面的判斷式相等,就執(zhí)行case子句中的代碼。執(zhí)行完后用break語句標記每個case代碼的結尾,跳出switch語句; Switchcase(一)Switchcase是多分支選Switchcase(二)也可在switch語句中包含一個default語句,當所有case中的常量表達式的值都沒有與switch中表達式的值相等,就執(zhí)行default子句中的代碼。default子句可有可無,一個switch語句中有且僅有一個default分支。case后的值必須是常量表達式,不允許使用變量。case子句的排放順序無關緊要;default子句也可放到最前;任何兩個case的值不能相同.Switchcase(二)也可在switch語句中包含一個Switchcase(三)參數(shù)語句1語句2語句3語句n后續(xù)代碼。。。執(zhí)行流程case1case2case3casenSwitch(參數(shù)))Switchcase(三)參數(shù)語句1語句2語句3語句n后續(xù)Switchcase(四)class
Program{
static
voidMain(string[]args)
{
DateTimenow=DateTime.Now;
DayOfWeekweek=now.DayOfWeek;
switch(week)
{
case
DayOfWeek.Saturday:
Console.WriteLine("休息");
break;
case
DayOfWeek.Sunday:
Console.WriteLine("休息");
break;
default:
Console.WriteLine("上班");
break;
}
}}class
Program{
static
voidMain(string[]args)
{
DateTimenow=DateTime.Now;
DayOfWeekweek=now.DayOfWeek;
switch(week)
{
case
DayOfWeek.Saturday:
case
DayOfWeek.Sunday:
Console.WriteLine("休息");
break;
default:
Console.WriteLine("上班");
break;
}
}}合并兩個caseSwitchcase(四)classProgramclafor(一)for語句用來依據(jù)特定條件來多次重復執(zhí)行某些代碼。語法如下: for(初始化;條件表達式;結束一次循環(huán)的后續(xù)操作)
{ //一些代碼
} //后續(xù)代碼
14352for(一)for語句用來依據(jù)特定條件來多次重復執(zhí)行某些代for(二)執(zhí)行流程:
1435真假在步驟3中一般做些自增等操作以能影響步驟2的操作,使循環(huán)得以繼續(xù)或者終止2for(二)執(zhí)行流程:1435真假在步驟3中一般做些自增等操for(三)class
Test{
static
voidMain()
{
for(inti=0;i<100;i++)
{
System.Console.WriteLine(i);
}
}}for(三)classTestforeach(一)foreach語句用于枚舉一個集合的元素。與for語句相比有更簡潔的語法。語法如下: for(迭代變量類型迭代變量名in集合)
{ //一些代碼
} //后續(xù)代碼
foreach(一)foreach語句用于枚舉一個集合的元foreach(二)class
Test{
static
voidMain()
{
int[]array=new
int[]{1,3,5,7,9};
foreach(intiteminarray)
{
Console.WriteLine(item);
}
}}foreach(二)classTestwhile&dowhile(一)while循環(huán)的一般形式為: while(條件)//這個條件為布爾表達式
{
循環(huán)體語句;
}執(zhí)行流程:先判斷條件(即布爾表達式的值),如為真便重復執(zhí)行循環(huán)體語句;直到條件為假時才結束循環(huán),并繼續(xù)執(zhí)行循環(huán)程序外的后續(xù)語句。while&dowhile(一)while循環(huán)的一般形while&dowhile(二)class
Test{
static
voidMain()
{
int
i=0;
while(i<10)
{
System.Console.WriteLine(i);
i++;
}
}}while&dowhile(二)classTestwhile&dowhile(三)do-while循環(huán)的一般格式為: do { //循環(huán)體語句; }while(測試條件);
執(zhí)行流程:先執(zhí)行循環(huán)體語句,然后測試while中的條件,如果測試條件為true,就再次執(zhí)行循環(huán)體語句,直到測試結果為false時,就退出循環(huán)。while&dowhile(三)while&dowhile(四)class
Test{
static
voidMain()
{
int
i=0;
do
{
System.Console.WriteLine(i);
i++;
//這個while條件后面是有分號的,是必須的}while(i<10);
}}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國傷腦筋玩具數(shù)據(jù)監(jiān)測研究報告
- 2025年中國運動鞋革市場調(diào)查研究報告
- 2025年中國挖掘機漲緊裝置總成市場調(diào)查研究報告
- 融合可調(diào)Q因子小波變換的聚類算法研究
- 二零二五年度美容院員工勞動合同規(guī)范文本發(fā)布4篇
- 二零二五年度海洋工程承包商工程款安全保障合同3篇
- 二零二五版美甲店美容護膚產(chǎn)品銷售代理合同模板4篇
- 2025年度房產(chǎn)抵押個人住房貸款合同規(guī)范8篇
- 二零二五年度按摩技師個人工作室運營管理合同3篇
- 二零二五年度滄州租賃合同電子化服務合同2篇
- 課題申報書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學習設計研究
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺人群趨勢洞察報告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識報告-
- 天津市2023-2024學年七年級上學期期末考試數(shù)學試題(含答案)
- 經(jīng)濟學的思維方式(第13版)
- 盤錦市重點中學2024年中考英語全真模擬試卷含答案
- 提高保險公司客戶投訴處理能力的整改措施
評論
0/150
提交評論