天天看點

3.基礎文法(變量,字元轉義和注釋)

今天來看看一些基礎C#文法,也許對你有所幫助吧!

一.變量

/* 1. 軟體如果需要處理資料的話,那麼這個資料是需要被存儲在記憶體中.

* 資料如何存在在記憶體中?

* 在記憶體中開辟1塊指定類型的空間.将這個資料存儲到這個空間中就可以.

* 空間的類型一旦指定.

那麼這個空間中就隻能存儲這類型的資料.

*

* 2. 變量:

聲明1個變量其實就是在記憶體中開辟1塊指定的類型的空間 用來存儲資料.

* 需要注意:

a. 一定要指定這個變量的類型.

* b.

變量的類型一旦指定以後,那麼這個變量中就隻能存儲這個類型的資料.

* 3. 聲明變量.

* 文法:

* 變量的類型

變量的名稱;

* int num;

* 當CPU執行到這句話的時候,

會在記憶體中開辟1塊int類型的空間. 這個空間的名字叫做num

因為這個空間的類型是int類型的,是以其中隻能存儲int類型的資料.

* 注意

* a.

變量的名稱一定要獨一無二.

* b. 同1個變量是不允許重複定義的.

* 4. 為變量所代表的空間中存儲資料: 為變量指派

變量的名稱=資料;

* num = 12;

* 将12這個資料 存儲到

num變量所代表的空間中去.

* =号是指派符号,它的意義是 将右邊的資料存儲到左邊的變量所代表的空間中去.

* 是以: 指派符号右邊的資料的類型一定要和左邊的變量的類型一緻.

* 5. 使用變量的值.

* 隻需要在使用變量的值的地方 直接寫上變量的名稱就可以了.

* a. 注意細節:

* 1). 變量一定要先聲明以後才可以使用.

編譯器的提示:目前上下文中不存在名稱"xx"

* 2). 變量在使用之前,必須要保證這個變量中已經有值.

提示:使用了未指派的局部變量"xx"

* 3). 在使用變量的名稱的時候 變量的名稱不要加雙引号 因為加了雙引号

就是1個字元串了.

* 6. 資料類型:

a. 在記憶體中開辟空間大小的模闆. 這些模闆規定了空間開辟多大 已經可以存儲什麼樣的資料.

* 常見的資料類型:

* 數值類型: 可以存儲數字

* 整型: 不帶小數點的數字

* long int

short byte

* 相同點: 都可以存儲整型的資料

* 不同點:

能夠存儲的整型的資料的範圍不同

* long的範圍最大. 盡管是最大的 也有範圍

不是任意的整型都可以存儲.超過範圍就不能存儲.

* 取得資料類型的範圍:

資料類型.MinValue 得到這個資料類型的最小值 資料類型.MaxValue得到這個資料類型的最大值.

int的範圍比long小. -21e +21e 之間

* short的範圍比int小. -32768

+32767

* byte的範圍比short 0-255

* 浮點型: 帶小數點的數字

* decimal double float

相同點: 都可以存儲帶小數點的數字.

* 不同點: 他們各自的精度不同.

* decimal 精度最高 高精度 一般情況下用于表示金錢.

* double

雙精度 精度比decimal要低

* float: 單精度 精度最小.

注意的細節:

* a. 當我們寫1個小數常量的時候. 這個小數的類型預設是double類型的.

* 如果要讓它成為1個decimal類型的資料 那麼在後面加上m money

如果要讓它成為1個float類型的資料 那麼在後面加上f

* b.

精度最大的是decimal 範圍最大的是double.

非數值類型:

* char: 字元. 單個字元 并且要用單引号引起來才可以. 隻能是1個字元

多個或者0個是不行的 空格也是1個字元

* string: 字元串 由多個字元組合起來的 用雙引号引起來. 可以由1個或者0個.

* 7. 在聲明變量的同時就為這個變量指派.

資料類型 變量的名稱=要為變量賦的值;

* int num = 12;

聲明1個int類型的變量并将12指派給它.

* 注意: 為其指派的時候 仍然要注意資料的類型和變量的類型一緻.

* 8. 同時聲明多個相同類型的變量.

* 文法: 資料類型 變量名1,變量名2,變量名3;

* int i1, i2, i3;

表示聲明了3個變量i1 i2 i3 他們的類型都是int類型的.

* 9. 變量中的存儲的資料是可以更改的.

* 重新的為這個變量指派就可以了.

* int num = 12;// 聲明1個變量int類型的 叫做num 并指派12.\

* num = 10;

* a. 變量有1個特點: 1個變量中隻能存儲1個值.

* b. 當我們為變量指派的時候. 如果變量中已經有值了 那麼新值會将老值覆寫掉.

喜新厭舊.

* 10. 變量的命名規則

規則相當于現實生活中的法律. 一旦不遵守 就要付出代價.

* a. 變量的名稱隻能以任意的字母、下劃線、@符号開頭.

特表強調不能以數字開頭.

* b. 後面可以跟任意的字母、下劃線、數字. 其他的是不能跟的

* c.

有一些英文單詞在C#中代表特殊的意義,關鍵字. 那麼我們不能使用這些關鍵字來作為變量的名稱.

在VS中标注為藍色的單詞 就是我們系統中的關鍵字 無法使用它們作為我們的變量的名稱.

* d.

變量的名稱是區分大小寫的.

* e. 同1個變量名 不允許重複定義. 與變量的類型是沒有關系的

* 變量的命名規範: 相當于現實世界中的道德 可以不遵守 但是你會收到良心的譴責.

* a. 變量的名字一定要取得有意義. 這個變量存儲什麼樣的資料就用這個名稱來表示.

會英文就用英文單詞 不會應英文就拼音.

* b. 變量的名稱如果是1個單詞組成的. 那麼就全部小寫.

* 如果是由多個英文單詞組成的? 那麼第1個單詞的全部小寫.其他的單詞的首字母大寫.

c. 如果使用到的是英文單詞的縮寫 那麼全部大寫.

* e. 如果某個單詞在英文文法首字母必須要大寫

那麼我們在前面加下劃線就可以

* string _China;

* 11. 指派運算符: =

* 注意: 右邊的資料的類型 要和

左邊的變量的類型一緻.

* 指派表達式:

* 通過指派符号位左邊指派的時候 右邊的資料可以是1個變量

* int i1=12;

* int

i2 = i1;//代表将i1的值指派給i2;

* 變量之間的指派:

* 将源變量的值拷貝1份,将這個副本指派給目标變量.

* int i1 = 12;

* int i2 = i1; 将i1變量的值拷貝1份. 把這個拷貝指派給i2 是以i1的值仍然是12

* 為變量指派的時候:

* a.

可以直接給1個資料

* b. 也可以給變量的值.

* c. 還可以給1個表達式.

* 如果指派的時候 右邊是1個表達式, 那麼先将這個表達式的結果算出來,再把結果指派給左邊的變量.

* 12. 字元串的連接配接.

* +

加号.

* 表達式: 最大的特點在于它有1個結果. 要求程式員必須處理這個結果才可以.

* 我們不能光秃秃的寫1個表達式.因為表達式都是有結果的.要求程式員必須處理這個結果才可以.

處理表達的結果

* a. 直接将表達式的結果通過Console.WriteLine()列印

會将表達式的結果先計算出來 再列印結果.

* b. 使用1個變量将這個表達式的結果存儲起來.

* +号的作用:

* a.代表數學意義上的求和.

當+号兩邊的資料的類型都是數值類型的時候,此時+号代表求和運算.

* b.用于連接配接字元串.

當+号的任意1邊的資料類型是字元串的時候,這個時候+号代表字元串的連接配接 将兩邊的資料連接配接起來組成1個新的字元串.

* 如果在遇到連續運算的時候. 從左到右依次的計算 并不是一次性的計算完畢.

* 13. 資料用什麼類型的變量來儲存:

a. 那麼要看這個資料的可能的取值是什麼.

1)如果這個資料的取值不是數值類型的.

那麼就使用非數值類型來存儲.

char 如果取值隻有單個字元 那麼使用char

string 如果資料的值由多個字元組成的

那麼就使用string

2).如果這個資料的取值 看起來 數數值類型的.

如果這個資料要參與算數運算或者比較運算

那麼就用數值類型來存儲.

又看資料的可能的取值是否隻是整數 如果是 那麼就使用整型存儲

這個資料是帶小數點的資料.

如果是表示金錢的

decimal

如果不是表示金錢絕大多數情況下直接使用double

如果這個資料不需要參與算數運算或者比較運算

那麼使用字元串存儲就可以.

注意:

1. 當交換變量的值.

* a. 聲明1個第3方臨時變量 用來交換他們的值.

轉圈:

* 這種方式交換變量的值

适合于任意的類型來交換.

string s1 = "小明";

string s2 = "小東";

string temp = s1;

s1 = s2;

s2 = temp

* b. 如果是數值類型的變量交換.

兩兩相加再相減.

*/

int num1 = 12;

int num2 = 10;

num1 = num1 + num2;//22

num2 = num1 -

num2;//12

num1 = num1 - num2;//10

三.接收使用者輸入的值

/* 1. 變量的值不希望在寫代碼的時候寫死,而是希望他們的值在程式運作的時候由使用者輸入進來.

* 2. Console.ReadLine();

* 當CPU執行到這句代碼的時候 程式會暫停.

當使用者按下Enter鍵的時候就會繼續往下執行.

* 與Console.ReadKey()的差別

* 相同點:

都可以讓程式暫停.

* 不同點: Console.ReadLine()隻有按下回車的時候才會繼續往下運作

Console.ReadKey()按任意鍵就會往下執行.

Console.ReadLine(); 當執行到這句代碼的時候 程式會暫停 并在使用者按下Enter鍵的時候繼續往下執行.

當使用者按下Enter鍵的時候. 它會将使用者在Enter鍵之前輸入的内容以字元串的形式 傳回給程式.

* 在代碼中我們隻需要定義1個字元串類型的變量來接收這句代碼的結果就可以了.

* string input =

Console.ReadLine(); //"jack"

* 當執行這句話的時候. 程式會暫停 等待使用者的輸入

當使用者輸入完畢之後 按下Enter鍵. 就會把使用者輸入的内容以字元串的形式指派給input變量.

* 3. 注意的細節

* a. Console.ReadLine()這句代碼接收使用者的輸入,

一定要用1個字元串的變量來接收輸入

* b. 無論使用者在控制台輸入什麼内容.都是以字元串的形式傳回給程式的.

* 4. 代碼段.

* cw 按兩下tab鍵

就會自動列印代碼 Console.WriteLine(); 快捷鍵

四.字元串的轉義

/* 1. 在字元串中 雙引号 代表特殊的意義. 不代表字元串的雙引号.

雙引号在字元串中代表字元串的開始和結束. 并不代表字元串的雙引号.

* 2. 使用轉義符

\ 改變後面的字元的原本意義.

* \" 本來引号是代表字元串的開始和結束

但是他的前面有1個轉義符(\) 轉衣符号把"的原本意義改變了

* 這個時候"不代表字元串的開始和結束,而代表字元串的引号

* \n 代表換行.

* \r\n 回車換行.

* \b 删除前面的字元.

* \t 代表1個制表符. Tab按鍵. 制表符是由多個空格組成的.

* \\ 代表1個字元串的\

* 3. 在字元串的前面

引号的外面 加1個@符号.代表這個字元串中斜杠(\)不是轉義符 而是字元串的斜杠.

五.字元串的格式化{0}填坑原則

/* 1. 使用占位符在cw的時候來拼接字元串.

* a. 在字元串中挖坑

先把字元串寫好,在需要拼接變量的值得地方,使用大括弧占坑并編号.

* b. 填坑: 在字元串的後面

挨個的寫上填在沒1個坑中的變量 并使用逗号分隔.

* 如何填的.後面的第0個變量就會去填編号為0的坑

後面的第1個變量就會去填編号為1的坑

* 後面的第n個變量就會去填編号為n的坑

* 2. 後面的填坑的變量要麼1個都不給 要麼就要給全.

* 如果要給的話,後面的變量的個數應該是 坑的最大編号+1

* 3.

在挖坑的時候, 坑的号碼你可以随意的編. 但是填坑的變量的個數要是 最大的坑編号+1

* 坑的編号也可以相同,.

* 4. 一般情況下我們使用坑

* 編号從0開始 依次的遞增.

在後面用變量來依次的填坑,

例如:

例如

string name = "jack";

int age = 19;

char

gender = ‘男‘;

string phoneNumber = "18666666666766666";

Console.WriteLine("大家好,我叫"+name+",我的年齡是"+age+",我的性别是"+gender+",我的電話号"+phoneNumber);

Console.WriteLine("大家好,我叫{0},我的年齡是{1},我的性别是{2},我的電話号碼{3}",name,age,gender,phoneNumber);

Console.ReadKey();

六.文檔的注釋

/* 1. 注釋: 對代碼的注解. 對代碼的解釋.

* 注釋是給誰看的? 程式員.

* 注釋的内容 編譯器在編譯的時候 忽略掉注釋的内容.

* 2. 單行注釋.

* // 這1行的後面的内容會被當做注釋.

* 3. 多行注釋.

* 斜杠* 與 *斜杠 中的内容會被當做注釋

不管有多少行.

* 4. 注釋的快捷鍵.

ctrl+k+c 注釋選中行

* ctrl+k+u 取消選中行的注釋.

* 5. 文檔注釋.在類的中輸入///來進行注釋

* 6. 在寫代碼的時候 一定要養成寫注釋的習慣.

* a. 思路更加清晰.

* b. 友善代碼的閱讀.

七.算數運算符與算數表達式

1. 算術運算符.

* + - * / %(模)

* 2. 算術表達式.

* 由算術運算符連接配接起來的式子. 叫做算術表達式.

* 不能光秃秃的寫1個表達式,因為表達式都有1個結果. 我們必須處理這個結果.

* 處理結果的方式有兩種

a。 直接将表達式的結果交給cw列印.

* b. 将表達式的結果通過指派符号存儲到變量中.

* 3. + 号.

* 在C#中代表兩種意義.

* 代表字元串的連接配接: 當+号的任意的1邊的資料的類型是string的時候 此時+号代表字元串的連接配接.

就會将兩邊的資料連接配接起來組成1個新的字元串.

* 代表算術運算中的求和運算.

當加号兩邊的資料的類型都是數值類型的時候 此時+号代表求和運算.

要将算術表達式的結果存儲起來,那麼我們必須要知道算術表達式的結果的類型.

因為隻有知道結果的類型我們才可以定義1個對應的類型的變量來存儲這個算術表達式的結果.

* 算術表達式的結果的類型

* 如果參與這個算術表達式的資料的類型是一緻的.那麼這個算術表達式的結果的類型就是這個類型.

* byte int short他們互相之間參與算術表達式的話,結果都是int類型的.

如果參與算術表達式的資料的類型不一緻.那麼這個算術表達式的結果的類型是範圍最大的那個類型.

* 關于範圍.

* a. 整型的資料:

long>int>short>byte

* b. 浮點型的資料的範圍一定比整型的大.

* c. 浮點型.範圍最大的是 double > float > decimal

* 4. - 号 代表數學意義上的求差運算.

* 5. * 号

代表數學意義上的求積運算.

* 6. / 号 代表數學意義上的求商運算.

* 如果兩個整型的資料參與求商運算 那麼表達式的結果的類型也是整型的 不會有小數的.

* 如果就是要得到小數的結果

* a. 修改參與算術表達式的其中的1個資料的類型為浮點型.

* b. 通過乘以1.0來使其變成doubel類型的.

* 7. % 求模運算. 求餘數.

* 10%3 結果是 10除以3的餘數.

* 判斷1個數是不是偶數.

* 8. 參與算術表達式的資料的類型隻能是數值類型的資料或者char類型的資料.

string類型的資料無法參與算術運算.

當char類型的資料參與算術表達式的時候,會先将這個char類型的資料轉換為其所對應的ASCII碼 然後再參與運算.

什麼是ASCII碼? 每1個字元資料都有1個對應的int類型的整數. 那麼這個整數就把它叫做這個字元資料的ASCII碼.

‘a‘ 97

* ‘A‘ 65

* 其他的字母的ASCII代碼

增加.

在計算的時候,先将這個char類型的資料轉換為其所對應的ASCII碼,然後再計算.

* 雖然是1個char資料

但是實際上在算的時候已經變成了1個int類型的資料.

* a. 所有的字元資料都有1個對應的int類型的數,那麼這個int類型的數就叫做這個字元資料的ASCII碼.

b. 字元資料是可以參與算術運算的.先取到這個字元資料的ASCII碼,然後使用這個int類型的ASCII碼來參與運算.

c. char c = ‘A‘; int res = c+1; 看起來是char和int在參與運算 實際上是int和int參與運算

* 9. 運算時有優先級的.

* 先乘除 後加減. 有括弧的先算括弧中的.

* 如果是同級别的話 那麼從左到右依次的計算.

* 在C#的算術表達式中仍然是 先乘除 後加減. 如果是同級别的話

那麼從左到右依次的計算.

* 可以使用小括弧來改變優先級.

小括弧一定要成對的出現.

10.decimal類型的資料不能與其他的浮點型資料參與算術運算.

* why? 因為會丢失精度.

* 但是decimal類型的資料是可以和整型的資料參與算術運算的 因為不會丢失精度

好了各位,今天的複習就這樣吧,也許字有點多,如果覺得不太懂可以去我部落格相冊看看今天的圖檔也許能對你有所幫助,祝你好運!