




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Objective-C基礎(chǔ)語法1/34關(guān)鍵內(nèi)容標識符關(guān)鍵字OC基本數(shù)據(jù)類型運算符表示式和語句分支和循環(huán)變量作用域2/34標識符正當標識符非法標識符ZhangSanifDogGirl*#_998^sad90$as_34d34_sdfOC語言中,對各種變量、方法和類等要素命名時使用字符序列稱為標志符。標識符由字母、下劃線“_”、美元符“$”和數(shù)字組成標識符必須以字母、下劃線、美元符號開頭標識符大小寫敏感,長度無限制oc標識符有以下命名規(guī)則:約定俗成:oc標識符選取要“見名之意”,而且不能與oc中保留字重名。3/34關(guān)鍵字intenumfloatgotodoubleregistershortsizeofstructtypedefunsignedvolatilebreakcharcontinuedolongexternforwhileautoreturnsignedstaticswitchunionvoidifcaseconstdefaultelseOC中一些含有特定含義,系統(tǒng)專門使用字符串稱為“保留字”,或者叫“關(guān)鍵字”(keyword)。OC中關(guān)鍵字全部都是小寫。4/34OC常量如整型常量:3456實型常量:3.1415926字符常量:‘a(chǎn)’邏輯常量:true、false字符串常量:“helloiphone”O(jiān)C中常量值用字符串表示,區(qū)分不一樣數(shù)據(jù)類型區(qū)分字符常量和字符串常量注意:5/34OC變量OC變量是程序中最基本存放單元,其要素包含變量名,變量類型和作用域。OC程序中每一個變量都屬于特定數(shù)據(jù)類型,在使用前必須對其申明,申明格式為:typevarName[=value];比如: inti=580; floatf=12.12f; doubled=0.798; NSString*s=@"helloiphone";從本質(zhì)上講,變量其實是內(nèi)存中一小塊區(qū)域,使用變量名來訪問這塊區(qū)域,所以,每一個變量使用前必須要先申請(申明),然后必須進行復制(填充內(nèi)容),才能使用。6/34程序執(zhí)行過程硬盤程序1.Load代碼到內(nèi)存區(qū)代碼操作系統(tǒng)代碼alloc出來局部變量靜態(tài)變量和字符串變量存放代碼內(nèi)存2.從main函數(shù)開始執(zhí)行堆棧數(shù)據(jù)區(qū)代碼區(qū)2.執(zhí)行過程中內(nèi)存管理7/34OC變量分類局部變量:方法或語句塊內(nèi)部定義變量實例變量:方法外部、類內(nèi)部定義變量按被申明位置劃分:基本數(shù)據(jù)類型變量指針數(shù)據(jù)類型變量按所屬數(shù)據(jù)類型劃分:8/34OC局部變量與組員變量方法體內(nèi)部申明變量(包含形參)稱為局部變量:方法體內(nèi)部是指與方法對應(yīng)大括號內(nèi)部在方法體外,類體內(nèi)申明變量稱為“實例變量”或者“組員變量”-(void)getName{ inta; intb=a+5;//編譯警告,變量a還未被初始化 floatc=2.8;}9/34OC數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型指針數(shù)據(jù)類型數(shù)值型字符型(char)布爾型空類型(void)類(class)id整數(shù)類型int浮點型float,double10/34C和OC基本數(shù)據(jù)類型int:申明整形變量double:申明雙精度變量float:申明浮點型變量char:申明字符型變量id:通用指針類型enum:申明枚舉類型long:申明長整形變量或函數(shù)short:申明短整型變量或函數(shù)signed:申明有符號類型變量union:申明共用體(聯(lián)合)數(shù)據(jù)類型unsigned:申明無符號類型變量void:申明函數(shù)無返回值或無參數(shù)11/34數(shù)據(jù)類型格式化說明符數(shù)據(jù)類型OC關(guān)鍵字格式說明引導符整型int%d、%i短整型shortint%hd、%hi長整形longint%ld、%li無符號短整型unsignedint%u無短整型unsignedshort%hu無符號長整形unsignedlong%lu類型名OC關(guān)鍵字格式引導說明符浮點型float%f雙精度型double%f長雙精度longdouble%lf字符型char%c12/34整數(shù)類型OC中整數(shù)類型用int來表示,格式化符號用%i或d%來表示比如:inta=100;OC語言整型常量默認為int型,申明long型常量能夠后加‘l’或‘L’,如:intb=600;//正確longc=888888888888L;13/34浮點類型類型占用存放空間至于范圍float4字節(jié)-3.403E38double8字節(jié)-1.798E3.8--1.798E浮點類型變量能夠存放包含小數(shù)值OC中浮點型常量默認為double型,假如要申明一個常量為float,在數(shù)字后面加f或F。doublem=3.14159;//正確floatf=3.14f;下面列出OC各種浮點類型float 有效數(shù)字為6~7位,格式化說明符號用%f表示double 有效數(shù)字為15~16位格式化說明符號用%f,%e或%g表示OC中有兩種浮點類型14/34字符charChar型數(shù)據(jù)用來表示通常意義上“字符”,格式化說明符用%c表示字符常量為用單引號括起來單個字符,比如:charachar=‘a(chǎn)’;charb='0';charcChar='蘋';值域范圍:-128~127"\n",OC編譯器把這個看成單個字符unsignedchar值域范圍:0~255OC字符采取Unicode編碼,每個字符占兩個字節(jié),因而可用十六進制編碼形式表示,比如:charc1='\u0061';注:Unicode是全球語言統(tǒng)一編碼15/34char類型(ASCII碼)16/34邏輯型BooleanBoolean類型指是用于存放真值和假值變量,普通用于程序流程控制。Boolean類型數(shù)據(jù)允許取值true或false,也能夠是0或非0整數(shù)替換true和false,這點和java語言不通。java里面boolean是基本數(shù)據(jù)類型,Boolean是它封裝類,和其它類一樣,有屬性有方法,能夠new.實例: Booleanflag=true; if(flag) { NSLog(@"HelloiPhone"); }17/34限定詞longint: 申明變量xx為long整形變量。格式化符為%li,如:longinta;longlongint: 申明變量xx為longlong整形變量,格式化符%lli,如:longlongintb;longdouble: 跟int基本相同unsignedint: 申明無符號整型變量。如:unsignedintc;signedint: 申明有符號整型變量。如:signedintd;18/34void類型告訴編譯器沒有任何范圍類型值不能像其它數(shù)據(jù)類型一樣來申明變量比如:voidi=10; //錯誤void通常與方法一起搭配使用,比如:-(void)test{ //code}19/34id類型id類型是oc中獨有數(shù)據(jù)類型。在概念上,類似JavaObject類,能夠轉(zhuǎn)換為任何數(shù)據(jù)類型,能夠存放任何類型對象,從某種意義上說,它就是普通對象模型。在內(nèi)部處理上,這種類型被定義為指向?qū)ο笾羔槪瑢umber申明為id類型變量。如:idnumber;格式化說明符:%p20/34基本數(shù)據(jù)類型轉(zhuǎn)換OC中能夠從任意基本數(shù)據(jù)類型轉(zhuǎn)型到另外基本類型轉(zhuǎn)換分為默認轉(zhuǎn)換和強制轉(zhuǎn)換整型,字符型,浮點型數(shù)據(jù)在混合運算中相互轉(zhuǎn)換,轉(zhuǎn)換時需遵照以下標準:容量小類型默認轉(zhuǎn)換為容量大數(shù)據(jù)類型;數(shù)據(jù)類型按容量大小排序為:Byte,short,char-->int-->long-->float-->doubleByte,short,char之間不會相互轉(zhuǎn)換,他們?nèi)咴谟嬎銜r首先會轉(zhuǎn)換成int類型。容量大數(shù)據(jù)類型轉(zhuǎn)換成容量小數(shù)據(jù)類型,要加上強制轉(zhuǎn)換符,但可能造成精度降低或溢出;使用時要格外注意。實數(shù)常量(如:2.9)默認為double,整數(shù)常量(如:123)默認為int21/34運算符OC語言支持以下運算符:算數(shù)運算符:+,-,*,/,%,++,--關(guān)系運算符:>,<,>=,<=,==,!=邏輯運算符:!,&,|,^,&&,||位運算符:&,|,^,~,>>,<<,>>>賦值運算符:=擴展賦值運算符:+=,-=,*=,/=22/34自加和自減運算符-(void)getNumber{ inti1=10,i2=12; inti=i2++; NSLog(@"i=%d",i); NSLog(@"i2=%d",i2); i=++i2; NSLog(@"i=%d",i); NSLog(@"i2=%d",i2); i=--i1; NSLog(@"i=%d",i); NSLog(@"i1=%d",i1); i=i1--; NSLog(@"i=%d",i); NSLog(@"i1=%d",i1);}輸出:i=12i2=13i=14i2=14i=9i1=9i=9i1=8注意:++(--)在前時先運算再取值在后時先取值再運算23/34邏輯運算符邏輯運算符:!:邏輯非&:邏輯與|:邏輯或^:邏輯異或&&:短路與||:短路或-(void)test{ Booleana,b,c; a=true;b=false; c=a&b; NSLog(@"c",c); c=a|b;NSLog(@"c",c); c=a^b;NSLog(@"c",c); c=!a;NSLog(@"c",c); c=a&&b;NSLog(@"c",c); c=a||b;NSLog(@"c",c);}-(void)test{ inti=3,j=4; Booleanflag3=(i>3)&&((i+j)>5); //第二個操作數(shù)不再計算 Booleanflag4=(i<2)||((i+j)<6) }24/34賦值運算符與擴展運算符賦值運算符(=)當“=”兩側(cè)數(shù)據(jù)類型不一致時,能夠適用默認類型轉(zhuǎn)換或適用強制類型轉(zhuǎn)換標準進行處理 longl=100; inti=(int)l;注意:能夠?qū)⒄统A恐苯淤x值給Byte,short,char等類型變量,而不需要進行強制類型轉(zhuǎn)換,只要不超出其數(shù)據(jù)范圍 Byteb=11; charc=456;運算符使用方法舉例等效表示式+=a+=ba=a+b-=a-=ba=a-b*=a*=bfa=a*b/=a/=ba=a/b%=a%=bfa=a%b25/34表示式表示式是符合一定語法規(guī)則運算符和操作數(shù)序列a1.0+a(a-b)*c-1i<10&&i%10!=0表示式類型和值對表示式中操作數(shù)進行運算得到結(jié)果稱為表示式值。表示式值數(shù)據(jù)類型即為表示式類型。表示式運算次序應(yīng)按照運算符優(yōu)先級從高到底次序進行。優(yōu)先級相同運算符按照事先約定結(jié)合方向進行。26/34三目運算符三目條件運算符,語法格式: x?y:z其中x為Boolean類型表示式,先計算x值,若為true,則整個三目運算結(jié)果為表示式y(tǒng)值,不然整個運算結(jié)果為表示式z值。比如: intscore=80;intx=-100; NSString*type=score<60?"不及格":"及格" intflag=x>0?1:(x==0?0:-1); NSLog(@"type="+type); NSLog(@"flag="+flag);27/34語句ifif...elseif...elseifif...elseif...elseif...elseswitch條件語句-依據(jù)不一樣條件,執(zhí)行不一樣語句forwhiledo...while循環(huán)語句-重復執(zhí)行一些動作28/34if語句if(表示式)//語句 比如:if(天不下雨)我就...if...else...if...elseif...if...elseif...elseif...if...elseif...elseif...else只有一句需要執(zhí)行語句時,能夠省略{},為了是代碼可讀性更加好,不過不推薦省略29/34for循環(huán)語句for語句為以下形式: for(表示式1;循環(huán)條件;表示式2){ //語句;...; }執(zhí)行過程: 先求表示式1值,再求循環(huán)條件值,假如條件不滿足(即表示式為false),循環(huán)馬上終止。然后執(zhí)行在循環(huán)之后程序語句。假如條件滿足,繼續(xù)執(zhí)行循環(huán)條件值,假如條件滿足,執(zhí)行表示式2,如此重復執(zhí)行,直到條件不滿足,退出循環(huán)。30/34while和dowhilewhile語句為格式: while(邏輯表示式){語句:...; }執(zhí)行過程 先判斷邏輯表示式值。若為true,則執(zhí)行其后面語句,然后再次判斷條件并重復執(zhí)行,直到條件不成。while語句為格式: do{語句;}while(邏輯表示式);執(zhí)行過程 先執(zhí)行語句,再判斷邏輯表示式。31/34break和continuebreak語句用于終止某個語句塊執(zhí)行。用在循環(huán)語句體重,能夠強行退出循環(huán);-(void)test{ intj=3; for(inti=1;i<=10;i++) { //當i等于j時,退出循環(huán) if(i==j) break; NSLog(@"i=%d",i); }}continue語句用在循環(huán)語句體中,用于終止某次循環(huán)過程,跳過循環(huán)體中continue語句下面未執(zhí)行循環(huán),開始下一次循環(huán)過程;比如:-(voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 備戰(zhàn)2025高考物理3年高考2年模擬1年原創(chuàng)專題5.8宇宙探測含解析
- 福建2025年02月福州市鼓樓區(qū)東街街道公開招考1名營商環(huán)境辦(財政所)工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 跨界融合教育領(lǐng)域營銷團隊的創(chuàng)新教育模式
- 餐飲行業(yè)中的品牌建設(shè)與市場推廣策略研究
- 購物中心的特色定位與市場細分策略
- 高端商業(yè)空間茶館墻面的裝飾風格趨勢
- 高效時間管理提升個人和團隊績效的秘訣
- 河南2025年01月河南省新鄉(xiāng)市市直機關(guān)(單位)2025年度公開遴選12名公務(wù)員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 河南2025年01月河南省林州市部分市直單位2025年公開選調(diào)10名工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 跨學科合作下的超聲科醫(yī)學教育新模式
- 四川輕化工大學
- 六西格瑪質(zhì)量管理在口腔科器械管理中的作用
- 高中心理健康教育-認識自我悅納自我教學課件設(shè)計
- 素材合集-扁平化圖標素材(彩色)
- (全)電梯安全風險管控清單
- 中國思想史 馬工程329P
- 《網(wǎng)店美工》教案-商品詳情頁設(shè)計
- 原始狩獵圖哀郢楚商
- 新版冀教版(冀人版)科學五年級下冊全冊教案
- 烏茲別克斯坦
- “雙減”下初中道德與法治分層作業(yè)設(shè)計研究 論文
評論
0/150
提交評論