學c#時做的筆記
2010-04-16 17:54
1、編寫程式時第一步是,匯入命名空間;
因為在系統內建的命名空間裡有許多類和方法、而我們在寫程式的時候會用到這些方法,所以一開始我們匯入這些命名空間可以讓我們在編寫程式時很方便的呼叫這些類和方法! 這些命名空間相當於我們計算機的資料夾,包含了一系列的類。而且我們寫的程式也包含在命名空間的類裡面!
2、定義命名空間和類的關鍵字與格式:
定義命名空間的關鍵字:namespace
定義類的關鍵字: class
namespace 命名空間名 //定義命名空間
}3、有了命名空間和類我們還要有執行程式的入口和出口,也就是主方法,這個主方法的關鍵字是main,主方法下面正大括號就是程式的入口,反大括號就是出口、
格式:static void main() //程式主方法
//程式出口
4、控制台的輸出、輸入方法:
write()和writeline();前者輸出不換行、後者輸出換行、
read()和readline();前者可以接受從控制台輸入的一行字元,但只能返回這行字元中第乙個字元對應的整數、後者readline()是從控制台上接受我們輸入的一行字元,並可以返回整行字符、、
5、標示符的命名規則:
有數字、下劃線和字母組成、首字元只能是下劃線、或字母,不能和關鍵字重複!
6、變數和常量的區別是,變數在初始化後其值在程式執行過程中可以隨時改變,常量在初始化後就不能在改變了。定義常量時要在其資料型別前面加const關鍵字,例:int a=1; //定義並初始化乙個變數
const int a=1; //定義並初始化乙個常量
7、值型別和引用型別的區別:
值型別包括:整型(int)、浮點型(float、double、)、字元型別()、布林型(bool)、結構型別、列舉型別
引用型別:字串型別、類型別、
宣告乙個值型別變數,編譯器會在棧上分配乙個空間。每個空間對應著該值型別變數,空間裡儲存的就是該變數的值。引用型別的例項分配在乙個堆上、新建乙個引用型別例項,得到的變數值對應的是該例項記憶體分配的位址、
值型別就相當於貨幣、我們用的是貨幣本身(值),而引用型別相當於銀行卡、我們用的是卡的賬號(記憶體位址);
8、運算子裡面:自增、自減運算子
它分為字首和字尾兩種形式:
《1》、當自增(自減)的變數不賦值給其他變數時、字首和字尾都把自身的值加1;
例如:int i=0;
i++;
console.writeline(i);
和int i=0;
++i;
console.writeline(i);
都會輸出1;
《2》、如果把自增的變數賦給別的變數,那麼:字首是先自增減,然後在賦值給別的變數;字尾:先把原值賦給別的變數在自增減!
例如:int i=0;
int j=++i;
console.writeline(i=,j=,i,j);將輸出i=1,j=1.
和int i=0;
int j=i++;
console.writeline(i=,j=,i,j);將輸出i=1,j=0.
9、選擇結構有兩種形式(if 選擇 和 switch 選擇);
《1》(if)格式:
<1>
if(表示式) //單分支選擇結構
<2>
if(表示式) //雙分支選擇結構
else
<3> //多分支結構
if(表示式1)
else if(表示式2)
else if(表示式n)
else
《2》當判斷的狀況很多時 (switch)格式:
switch(表示式)
大括號內位迴圈體,即迴圈一次便執行一次,
(2)它和while迴圈差不多、區別在於它是先執行一遍do裡面的語句,在判斷條件,如果成立繼續執行do後的語句,直到不成立。無論條件成立與否,do後的語句都被執行一次。
格式:int i=9;
dowhile(i<=8); //這裡雖然不滿足迴圈條件,但還是會執行一次。
(3)for迴圈;
格式:for(表示式1;表示式2;表示式3)//第乙個表示式作用為初始化,總是乙個賦值語句,它用來給迴圈控制變數賦初始值。
//第二個表示式是條件表示式,它決定了什麼時候退出迴圈,是乙個關係表示式
//第三個表示式是迴圈控制變數每次迴圈按什麼方式變化,遞增遞減。、、、三個表示式中間用;隔開!
例如:for(i=1;i<=10;i++)先給i賦初始值為1,判斷i 是否<=10,若是則執行語句,之後再加1,在重新判斷。知道條件為假,即i>10時,結束迴圈!
注意:雙重迴圈,外迴圈可以控制行、內迴圈控制列。外迴圈執行一次,內迴圈執行乙個週期。
11、陣列:
陣列有一維和多維之分,陣列的初始化有靜態初始化和動態初始化兩種方式
(1)靜態初始化時不必也不能定義陣列的長度,直接在賦值號的右邊大括號裡依次給每個元素賦值,靜態初始化時定義與初始化要在乙個語句中進行;
定義格式為:資料型別 資料名=
(2)動態初始化:在動態初始化陣列時,需要借助new關鍵字,而且要在定義陣列時給出陣列的長度;動態初始陣列可以 先定義陣列,然後在後面的語句中依次給元素賦值,也可以在定義的同時就賦值;
格式: 資料型別 陣列名=new 資料型別 [陣列長度]; // 動態定義陣列
資料型別 陣列名=new 資料型別 [陣列長度] //定義的同時給元素賦值
(3)陣列的遍歷;
當陣列中元素過多時、肯定不能為每個元素一一賦值、這樣可以用for和foreach迴圈來遍歷陣列中的元素,把陣列中的元素一一輸出、、
foreach迴圈只能用於陣列中、
foreach迴圈格式;
foreach(資料型別 變數名 in 陣列名)
例如:依次輸出40個同學的成績:如果每次手動輸入「第幾個同學成績」會很麻煩,所以我們可以利用迴圈:
float stuscor = new float[10];
for (int i = 0; i < 10; i++) //for迴圈輸入
個學生的成績", i + 1);
stuscor[i] = convert.tosingle(console.readline());
}foreach (float i in stuscor) //foreach迴圈輸出(1)
/t", i);
}for (int i = 0; i < stuscor.length; i++) //for迴圈輸出(2) i 就相當於陣列中的乙個元素,所以迴圈輸出的是這個變數
/t", stuscor[i]);
}(4)應用陣列時還有幾個內建的方法可以呼叫: 這些方法都是在array類裡面的,陣列是array的子型別,所以繼承了它的屬性length和方法;
一般是用在陣列遍歷之後
1、元素清空方法 (即清空哪個下標上的元素)
格式: array.clear(陣列名,系列元素的起始下標,清空個數);
2、元素查詢方法(即查詢元素的下標是誰)
格式:int firstindex = array.indexof( 陣列名,查詢的值) 查詢完畢後得到的是在陣列中第一次出現查詢值的位置 ,並將查詢得到的值賦給變數firstindex
int lastindex = array.last indexof(陣列名,查詢的值) 查詢完畢後得到的是最後一次出現查詢值的位置,並將查詢得到的值賦給變數lastindex
在指定範圍內查詢:
int firstindex =array.indexof(陣列名,查詢值,起始下標,查詢個數)
int lastindex =array.lastindexof(陣列名,查詢值,起始下標,查詢個數)
3、排序方法
陣列中可以使用array.sort()這個方法來實現排序。按照由小到大的順序排列
格式:array.sort(陣列名)
在指定範圍內排序,要給出排序元素的起始下標和要排序元素的個數
array.sort(陣列名,起始下標,排序元素個數)
4、翻轉方法(翻轉陣列)
格式:array.reverse();方法
指定範圍翻轉格式同上
12、多維陣列
一維陣列用乙個整數來索引,多維陣列用兩個或多個整數來索引,陣列在初始化時,應指定每一唯的大小、可以這樣理解,一維數字是一條線,二維陣列是乙個面!
定義格式:
陣列型別 [,] 陣列名= new 陣列型別 [行數,列數] ;
定義乙個3行3列的二維陣列;
int [,] intarray = new int [3,3];
初始化:
可以一一賦值、也可以一次性定義且初始化
int[,]intarray=,,};
學C 時要注意的
對c 學習的一點感想,希望對初學者能有些幫助 1.如果你以前從來沒有接觸過c 那麼選擇的第一本c 教程就顯得尤為重要,我認為你可以參照以下的標準進行選擇 a.對標準c 進行講解,畢竟c 比從前發生了很大的變化。b.要求全面,但不要很深,這要有助於你對於c 有乙個全面的認識,打好基礎,並且易懂的教材還...
做遊戲,學程式設計(C語言) 11 2048
遊戲簡介 2048是比較流行的一款數字遊戲。原版2048首先在github上發布,原作者是gabriele cirulli。這是20歲的gabriele cirulli開發的一款數字遊戲。初衷就是覺得好玩,將開源版本放到github後意外走紅。這款遊戲的玩法很簡單,每次可以選擇上下左右滑動,每滑動一...
做iPhone開發時的一些筆記
內容非常散亂,基本上只是給自己查閱用的。以後如果真能積累出很多東西的話會分類別進行整理的。內容放在nsarray中。nssortdescription類 排序順序為 0 9 a z a z 如何自定義排序順序呢 由key和代表是否公升序的bool組成。sorter nssortdescription...