變數的作用:為了更好的管理記憶體資料,不同型別的資料存放在不同的記憶體塊中。
變數的特點:不同資料型別占用的儲存空間大小不一樣。
1.要確定儲存的資料的型別。
2.給這塊空間起乙個有意義的名字,方便我們使用空間中的內容。
儲存變數的語法:
變數型別 tagname;
tagname =
value;
c#中資料型別(數值型別/引用型別):
1)整數型別int:只能儲存整數,不能儲存小數。
2)小數型別double:既能儲存小數,又能儲存整數。
3)金錢型別decimal:用來儲存金錢,值後面加m。
4)字串型別string:用來儲存文字,也可儲存空,要用「」括起來。
5)字元型別char:用來儲存單字元,不能為空。
值型別預設是0
下面介紹兩個特殊的值型別(nan和infinity)
記住一條結論:infinity*0,結果是0.而nan*0的結果認識nan。
下面描述一下c#和plc中資料型別的取值範圍,它們還是有許多不同之處的,如下表:
c#plc
int-231~231
-32767~32768
double
+-5*10-324~+-1.7*10308
(dint)-2147483648~-2147483648
decimal
(-7.9*1028~7.9*1028)/100~28
string
不適用不適用
char
不適用不適用
變數的使用規則:使用變數,要先宣告後賦值在使用
變數的命名規則:
(1)必須以字母或「_」開頭,不要以數字開頭
(2)後面面可以跟任意字母,數字和_。
注意:1.變數名不要有c#關鍵字重複。
2.c#中大小寫敏感。
3.同乙個變數不要重複定義。
變數命名的方法:
1)camel駱駝命名規則:要求變數名單詞首字母小寫,其餘單詞首字母大寫,多用於變數或字段的命名。
2)pascal命名規則:要求每個單詞首字母大寫,多用於類或方法命名。
c#中及格常用符號:
(1)「+」號:1.當「+」兩邊有乙個是字串時候,起連線作用。
2.「+」兩邊是數字是相加。
(2){}佔位符:使用方法先挖坑,在填坑。輸出順序按照挖坑順序輸出。
1 console.writeline("**第5行的語法糖稱為字串的插值,這在.net framework框架中,比「+」的效率高很多,連線符+會占用很多記憶體。課程編號:
"+courseid+"
課程名稱:
"+coursename); //
+起到連線作用
23 console.writeline("
課程編號:課程名稱:
".courseid,courename);//
{}佔位符的用法
45 console.writeline($"
課程編號:,課程名稱:
");//
framework 4.6語法糖
注意:挖幾個坑,填幾個坑,多填沒有效果,少坑拋異常。
異常:語法上沒有任何錯誤,只不過執行期間,由於某些原因出現了問題,程式不在正確執行。
(1)\n:表示換行。(適用於console/winform/ios系統)
(2)\":表示乙個英文半形雙引號。
(3)\t:表示乙個tab鍵的空格。4個或8個空格,空格多少取決於編譯器。
(4)\b:表示乙個退格鍵,刪除前乙個字元,放在字串的兩邊沒有效果。
(5)\r\n:表示換行(windows系統適用)
(6)\\:表示乙個\。
@符號的意義:1)取消\在字串中的轉移作用。
2)將字串按照原格式輸出。
c#中的強制型別轉換(顯式)和自動轉換(隱式)
顯示的給變數賦以惡初始值,是我們程式設計的乙個好習慣。
1 console.write("這裡還要說一點,我們已經知道,string型別我們可以賦空,語法有以下幾種方式請輸入你的年齡");
2int age=int.parse(console.readline());
3 int age=string.converttoint32(console.readline());
1)string tag="";
2) string tag=null;
3) string tag=string.empty;
下面我們介紹乙個與變數對應的----常量
當我們希望某乙個值不希望被人修改,可以使用常量。
常見應用:數學計算,上位機某些裝置引數的定義。
常量的定義要求:
(1)必須在定義的時候就初始化(賦值)
(2)常量的名字全部大寫(建議)
(3)常量的命名要有意義。
語法:const type tag = value;
列舉的使用
列舉的作用:1.可以表示一組描述的名稱,還可以有對應的「整數值」(預設從0開始)
2.定義一組有限制,方便我們使用(個數不要太多)
列舉的語法:
[public] enum 列舉名
1補充:若要獲得int型別,(int)gender;支援顯示強制轉換,列舉型別和int型別是相容的。public
enum
gender25
6static
void main(string
args)
7
public:訪問修飾符,公開的,**都可以訪問
列舉名:符合pascal命名規範。
將列舉宣告在命名空間下,類的上面。
將enum型別強制轉換成string型別
所有的型別都能轉換成string型別,呼叫tostring()方法去轉換。
比較麻煩的是將string型別轉換成enum型別
這裡先介紹三種轉換的方法
(1)convert.totype()
(2)type.tryparse()
(3)type.parse()
呼叫parse()方法的目的就是為了讓他幫助我們將乙個字串轉換成對應的列舉型別。
語法:(要轉換的列舉型別)enum.parse(typeof(要轉換的列舉型別),「要轉的字串」);
舉例如下
1列舉型別預設和int型別相互相容,所以可以通過強制型別轉換語法轉化。enum和string亦可。如果轉換的字串是數字,就算string s = "0"
;2 qqstate state = (qqstate)enum.parse(typeof(qqstate),s);
列舉中沒有,也不會拋異常。如果轉換的是字串文字,如果列舉中沒有,則會拋異常。
1 console.writeline("");c#中常用的運算子和資料轉換2string input =console.readline();34
switch
(input)
526 console.readkey();
(1)賦值運算子「=」
(2)算數運算子:+ - * / % ++ --
其中要說明一點%適用於所有值型別,且結果不一定為整數。
自動型別轉換
1.兩種型別必須是值型別(int和double/foalt)
2.目標型別取值範圍必須大於要轉換的型別,例如double和int
顯示型別轉換的幾種方法:
(1)型別直接轉換(值型別之間)
(2)parse轉換(string--->值型別)
(3)convert萬能轉換器(任意型別之間)
需要指出的是object型別的轉換方法,需要一步一步轉換,不能一步到位。
例如: object a = 10.25;
int result = (int)(double)a;
string--->值型別:對於parse()方法來說要求字串的格式必須符合目標型別的有效形式。
例如:int a = int.parse("20.5")這樣是會拋異常的。
避免上乙個問題的異常就是使用convert()方法。
下面介紹一種特殊情況:
如果小數部分為0.5,整數部分若為偶數保留,捨掉小數部分,若為奇數,則進一位。
最後我們講一講關係運算子和邏輯運算子
關係運算子是用來描述兩個事物之間的關係的
關係運算子:> < <= >= == !=
邏輯運算子:&& || !
C語言基礎學習 3 符號數和無符號數
author 想文藝一點的程式設計師 自動化專業 工科男 再堅持一點,再自律一點 csdn 想文藝一點的程式設計師 這裡的符號是指 正負號 所以他們表示的範圍不同 有符號數 整形 signed int 簡寫為 int signed long,也寫作signed long int,簡寫為long si...
C語言有符號數與無符號數之間的轉換
無符號數 不存在正負之分,所有位都用來表示數的本身。有符號數 最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。1 無符號數 有符號數 看無符號數的最高位是否為1,如果不為1 為0 則有符號數就直接等於無符號數 如果無符號數的最高位為1,則將無符號數取補碼,得到的數就是有符號數。以...
C語言有符號數與無符號數之間的轉換
寫在前面 以下內容是我的愚見,如有不對,歡迎拍磚。無符號數 不存在正負之分,所有位都用來表示數的本身。有符號數 最高位用來表示數的正負,最高位為1則表示負數,最高位為0則表示正數。1 無符號數 有符號數 看無符號數的最高位是否為1,如果不為1 為0 則有符號數就直接等於無符號數 如果無符號數的最高位...