Objective-C之成魔之路【4-運算子和運算式】

來源:互聯網
上載者:User

標籤:objective-c   物件導向   開發人員   ios開發   位元運算   

重開發人員的勞動成果,請勿轉載


運算子和運算式

運算子可以分成如下幾種: 
?算術運算子, +, ―, *, /, %, ++, ――
?關係運算子, >, <, >=, <=, ==, !=
?布爾邏輯運算子, ! , &&, || 
?位元運算符, &, | , ^, ~ , >>, <<
?賦值運算子, +=, ―=, *=, /= 
?條件運算子, ? :


短路與和短路或

布爾邏輯運算子中有兩個比較特殊的運算子號, “&&” 和“|| ” , 其中“&&” 為短路與, 如果對兩個運算式進行計算, 若第1 個運算式的值為“假” , 則與第2個運算式的值無關, 結果肯定為“假” , 所以此時第2個運算式不再計算。 “|| ” 為短路或, 如果對兩個運算式進行計算, 若第1 個運算式的值為“真” , 則與第2個運算式的值無關, 結果肯定為“真” ,所以此時第2個運算式不再計算。
舉例如下:int i = 0;
int a = 10;
int b = 9;
if ((a > b) | (i++ == 1)) {
NSLog(@" a > b");
} else {
NSLog(@" a < b");
}
NSLog(@"i = %i", i);

結果是a > b和i =1

位元運算符

位元運算符有如下幾個運算子: &, | , ^, ~ , >>, <<, 其中&是按位與, | 是按位或, ^是異或, ~是取反, >>是右位移, <<是左位移。

位元運算符舉例:
假設有兩個位元16位整數(short int) ,
a=1001110110011101 和b=0011100100111001 , 則有如下結果;它們的運行結果如下:


條件運算子

條件運算子的文法格式為: 
布林運算式? 返回值1: 返回值2
當布林運算式的值為真時, 返回運算式1 的值, 否則返回運算式2的值。 舉例如下:
int i = 70;
int i3 =70
NSString *res = i3 > 60 ? @"及格" : @"不及格" ;
NSLog(@"res = i3 > 60 %@ ", res);
結果是“及格”

運算式
運算式,是由數字、算符、數字分組符號(括弧)、自由變數和約束變數等
以能求得數值的有意義排列方法所得的組合。
約束變數在運算式中已被指定數值,而自由變數則可以在運算式之外另行指定數值。


運算式的意義
給與自由變數一些數值指定,可以給與一個運算式數值,即使對於一些自由變數的值,表示式或許沒有定義。因此,一個運算式代表一個函數,其輸入為自由變數的定值,而其輸出則為表示式因之後所產生出的數值。


舉例來說:運算式x/y,分別使自由變數x和y定值為10和5,其輸出為數字2;但在y值為0時則沒有定義。
一個運算式的賦值和算符的定義以及數值的定義域是有關聯的。
兩個運算式若被說是等值的,表示對於自由變數任意的定值,兩個運算式都會有相同的輸出,即它們代表同一個函數。
一個運算式必須是合式的。亦即,其每個算符都必須有正確的輸入數量,在正確的地方。如運算式2+3便是合式的;而運算式*2+則不是合式的,至少不是算術的一般標記方式。
運算式和其賦值曾在20世紀30年代由阿隆佐·邱奇和Stephen Kleene在其λ演算中被公式化。λ演算對現代數學和電腦程式設計語言的發展都曾有過重大的影響。


運算式的分類
1、算術運算式:
算術運算式是最常用的運算式,又稱為數值運算式。它是通過算術運算子來進行運算的數學公式。
算術運算子
1)乘法運算子 *
X*Y 求X乘Y的值 舉例:6*7=42
2) 除法運算子 /
X/Y 求X除Y的值(浮點數運算) 舉例:2.76/1.2=2.3
3)整除運算子 div
X div Y 求X除Y的整數商(對整型數計算) 舉例:25=5
4)取餘運算子 Mod
X mod Y 求X除Y的餘數(對整型數運算) 舉例:25 mod 4=1
5)加法運算子 +
X+Y 加法運算 舉例:32+2=34
6)減法運算子 -
- X-Y 減法運算 舉例:48-21=27


2、邏輯運算式
邏輯運算的結果只有兩個:True(真)和False(假)。OC提供了六種關係運算子和三種邏輯運算子:
==(等於)、<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、!=(不等於)
!(非)、&&(與)、||(或)


運算式的運算優先順序
在進行運算式的轉換過程中,必須瞭解各種運算的優先順序,使轉換後的運算式能滿足數學公式的運算要求。運算優先順序為:
括弧→函數→乘方→乘、除→加、減→字元串連運算子→關係運算子→邏輯運算子
如果同級的運算是按從左至右次序進行;多層括弧由裡向外。
例:
(10+6)*3^2*COS(1)/2*8+7
① ④ ③ ⑤ ② ⑥ ⑦ ⑧
Sqrt(Abs(p/n-1))+1
④ ③ ① ② ⑤

Objective-C之成魔之路【4-運算子和運算式】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.