天天看點

C# - 算術運算符及表達 013

作者:源丁程式設計

算術運算符

算術運算符:對程式來說就是用來對變量或者常量進行操作的符号

算術運算符種類: 1)加法運算符( + ) 2)減法運算符(-) 3)乘法運算符(* )等同于數學中的X 4)除法運算符(/ )等同于數學中的÷ 5)取模運算符(也稱取餘運算符)(%)

也被稱為二進制運算符即至少需要有兩個操作數(操作數即元)參與運算

算術運算符的優先級:先乘除取餘,後加減,同級的按照從左至右的規則

提升優先級的方法加( )小括号,可以無限加小括号,有小括号的先算括号裡的資料

算術運算符使用規則:參與運算的操作數其資料類型必須相同(類型轉換除外)

無論什麼類型的表達式都會得到一個最終解,所有運算符中指派運算符優先級最低

算術表達式:就是使用算術運算符連接配接起來的式子

1 常量表達式 如 1+1,5-3等(聲明的常量除外) 2 變量表達式 如 a+b,a+1等

3 數值類型資料的運算

加乘無需多說,隻說減法,除法與取餘運算

3.1 減法運算中,如果被減數小于減數結果為負值 如:3-8=-5;

示例:交換兩個變量的值,

//聲明兩個變量
int a=5,b=10;
//有兩種實作方式
//方式1 使用中間變量
int temp;
temp=a;//temp=5;
a=b;//a=10;
b=temp;//b=5;
//方式2 沒有中間變量
int a=6,b=9;           // 依葫蘆畫瓢
a=a+b;//a=15;        =    b=a+b;
b=a-b;//b=6;           =    a=b-a;
a=a-b;//a=9;           =    b=b-a;
//這種方式的關鍵點是第二步,必須保證其中一方變量值不變
//隻為說明功能的實作不要拘泥于某種方式
//多思多想以便程式可以适用于不同環境下           

3.2 除法運算

1) 除數不能為0

C# - 算術運算符及表達 013

除數不能為0

2) 兩個整數相除得到的結果是一個整數,但小數部分會被忽略,造成精度缺失,如不想小數被忽略,需要把除号兩端的操作數強轉為浮點數類型(float或double類型)

3.3 取餘運算:,一般都是運算整形數值類型的資料

C# - 算術運算符及表達 013

取餘運算

1) 取餘運算是右側操作數也不能為0

C# - 算術運算符及表達 013

與除數運算時報相同的異常

2) 取餘操作的結果如果不是零的話,結果的正負号和左側操作數正負号一緻,與右側操作數的正負号無關

C# - 算術運算符及表達 013

取餘結果的正負号

4 非數值類型資料的運算

4.1 char(字元型)資料進行算術運算

字元類型在計算機中是以ASCII碼值的形式存儲即将字元編碼轉變為一個數值進行存儲,是以在使用字元型資料進行算術運算時底層是通過該字元對應的ASCII碼值進行運算的

特殊節點的ASCII碼字元與其對應的ASCII碼值
0 - 9 48 - 57
a - z 97 - 122
A - Z 65 - 90
space(空格) 32
C# - 算術運算符及表達 013

字元型算術運算

注意:字元型資料進行算術運算後類型會轉換為int類型資料

4.2 字元串類型資料

字元串資料無法使用"算術運算"運算,但可以使用其中的+運算符進行字元串拼接

字元串可以看做是一堆字元型的集合,在運算時無法輕易地轉換為數值型資料進行運算;是以不能使用算術運算符進行運算,但是算術運算符中有一個特殊的運算符+,使用此運算符可以使用兩個字元串類型的資料進行拼接,此時+就不再是“加法運算符”了,而是字元串間的"拼接符”

4.3 布爾類型與object類型也無法進行算術運算

5 使用()提升運算優先級

示例1:小明國文95,數學90,英語74;小華國文98,數學96,英語84;1)求各自平均分與總分 2)求兩人合在一起的平均分與總分

程式設計思路:1)需要聲明多少個變量 2)每個變量使用什麼類型(暫時忽略) 3)實作功能的算術表達式

使用小括号提升運算優先級

因為隻能使用同類型資料進行運算,運算結果有小數,是以使用雙精度類型