C#基礎知識總結(二)
摘要
第二篇主要講:變數、連線符佔位符等、轉義字元、資料的計算、資料的轉換、try-catch的簡單熟悉、複合運算子和自加自減
一、變數
1.資料儲存在記憶體中:記憶體叫做RAM,記憶體被分隔為一小格一小格的,每個小格有個地址。記憶體的特點是:斷電後資料丟失
2.變數:變數代表著一塊記憶體空間,我們可以通過名稱向記憶體 存或讀資料,有變數就不需要我們記憶複雜的記憶體地址
3.宣告整數型別,並賦值:int number = 1000;
4.變數的簡單型別
資料型別:
整型:sbyte,byte:1個位元組(8位)
short,ushort:2個位元組
int,uint:4個位元組
long,ulong:8個位元組
非整型:float,decimal,double…
非資料型別:char,string,bool…
5.資料型別精度:
double只有16個精度
decimal沒有精度限制,但是一共可以儲存29位數
decimal型別變數的宣告與賦值:decimal dec = 3.4m;
6.宣告變數的方式
先宣告,再賦值:
int a;
a = 10;
宣告並賦值:
int a = 10;
宣告多個變數(多個變數名以逗號分隔,最後以分號結尾):
int a,b,c;
7.命名規則:Camel命名法
變數:開頭小寫,後面每個單詞開頭大寫:studentName
方法名或者類名:開頭大寫,後面的每個單詞開頭大寫:GetStudentName
二、賦值符、連線符、佔位符
1.賦值符:=
運算子有優先順序
a=a+1;
a先加一,然後再賦值給自己
2.連線符:+
+在C#中有兩種意義:
一種是數學上的加法算術:兩邊參與運算的型別都為資料型別,則為加法
另一種是連線的意思:兩邊參與運算的型別有一個為字串時,則為連線
3.佔位符(在字串中使用):{0開始的數字}
在字串中使用
三、資料的交換
需要藉助中間變數
int a = 5; int b = 10; int temp; temp = a; a = b; b = temp;
四、轉義字元
我們要在字串中輸入一些特殊的字元時,如引號,回車等,需要加上轉義字元
\n:帶邊換行
\":代表字串中的"
\b:backspace(刪除前一個字元)
\\: \
還有很多其他的轉義字元:一般是\加上其他的字元代表其他意思
注:字串前面加@符號
字串中的轉義符不再轉義
字串可以多行寫
如果在加@符號的字串中需要加字串時,兩個""代表"
五、算術
1.算術運算子
二元運算子:+ - * / %
2.算術
int型別和double算術型別計算,結果會轉化為double
算術運算子兩邊的資料型別要一致,結果型別也是一致的
但是當運算子兩邊型別不同時,且型別相容時,計算機自動做型別的轉換(隱式轉換)。
且計算的結果的型別,為不丟失精度的那個型別
不丟失資料和精度的情況才會做自動轉換
所以decimal不能隱式轉換為double,因為decimal的精度大於double
六、型別的轉換
1.強制轉換
程式不允許把高精度的資料型別轉到低精度的資料型別
如果確實需要轉換,需要用程式碼強制轉換
格式:(目標型別)待轉換的資料
如果強制轉換的過程中,發生了精度丟失,不是四捨五入,而是直接丟失精度資料
2.Convert類提供了多種資料中間轉換的方法,但是Convert轉換
不是強制轉換,而是對待轉換的資料進行加工
3.轉換注意項
不管是隱式轉換 還是 強制轉換,都只能是資料之間的轉換
不能在字串和資料之間進行強制轉換,只能通過Convert類來轉換
Convert不再僅是記憶體級別的轉換,而是考慮資料意義的轉換。Convert是一個加工、改造的過程
一切型別都可以轉換成字串
七、try-catch的簡單熟悉
1.try-catch使用方法
try
{
程式碼
}
catch
{
程式碼
}
如果try中的程式碼沒有出現異常,則程式正常執行到try中的內容後,不會執行catch中的內容;如果try中的程式碼一旦出錯,try中出錯程式碼位置後面的程式碼都不會執行,程式立即跳到catch中去執行程式碼
八、習題計算(熟悉算術運算子)
輸入一個天數,計算輸入天數有幾個月零幾周零幾天
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //輸入天數,計算出有幾周零幾天 6 //Console.WriteLine("請輸入需要計算的天數:"); 7 //int days = Convert.ToInt32(Console.ReadLine()); 8 //int weeks = days / 7; 9 //int day = days % 7; 10 //Console.WriteLine($"你輸入的{days}包含{weeks}周零{day}天。"); 11 //Console.ReadKey(); 12 13 //輸入天數,計算出有幾個月零幾周零幾天 14 Console.WriteLine("請輸入需要計算的天數:"); 15 int days = Convert.ToInt32(Console.ReadLine()); 16 int months = days / 30; 17 int weeks = ( days - 30 * months ) / 7; 18 int day = ( days - 30 * months ) % 7; 19 Console.WriteLine($"你輸入的{days}包含{months}個月零{weeks}周零{day}天。"); 20 Console.ReadKey(); 21 } 22 }
九、複合運算子和自加自減
1.運算子
一元運算子:只有一個運算元:a++,a--
二元運算子:兩個運算元:a+b
三元運算子:三個運算元:a>b?a:b
2.自加
a++是後加
++a是先加
C#中一般情況下,一元運算子優先順序大於二元運算子
int a = 3;
int b = 3;
int c = ++a * b++;
c最後為12,因為是4*3
3.複合運算子
+-*/%和=組合稱之為複合運算子
如:+=,-=,*=
a=a+2;
等效於
a+=2;