版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
無限互聯(lián)之基礎(chǔ)語法介紹第1頁,課件共35頁,創(chuàng)作于2023年2月核心內(nèi)容標(biāo)示符關(guān)鍵字oc基本數(shù)據(jù)類型運(yùn)算符表達(dá)式和語句分支和循環(huán)變量的作用域第2頁,課件共35頁,創(chuàng)作于2023年2月標(biāo)示符
oc語言中,對各種變量、方法和類等要素命名時使用的字符序列稱為標(biāo)示符。
oc標(biāo)示符有如下命名規(guī)則:
標(biāo)示符由字母、下劃線“_”、美元符“$”和數(shù)字組成標(biāo)示符必須以字母、下劃線、美元符號開頭
oc標(biāo)示符大小寫敏感,長度無限制約定俗成:oc標(biāo)示符選取要“見名知意”,并且不能與oc中保留字重名。合法標(biāo)示符非法標(biāo)示符ZhangSanifDogGirl*#_998^sad90$as_34d34_sdf第3頁,課件共35頁,創(chuàng)作于2023年2月關(guān)鍵字
oc中一些具有特定含義的,系統(tǒng)專門使用的字符串稱為“保留字”,或者叫“關(guān)鍵字”(keyword).oc中的關(guān)鍵字全部都是小寫。intenumfloatgotodoubleregistershortsizeofstructtypedefunsignedvolatilebreakcharcontinuedolongexternforwhileautoreturnsignedstaticswitchunionvoidifcaseconstdefaultelse第4頁,課件共35頁,創(chuàng)作于2023年2月oc常量
oc中的常量值用字符串表示,區(qū)分不同的數(shù)據(jù)類型如整型常量:3456
實(shí)型常量:3.1415926
字符常量:‘a(chǎn)’
邏輯常量:true、false
字符串常量:“helloiphone”注意:區(qū)分字符常量和字符串常量第5頁,課件共35頁,創(chuàng)作于2023年2月oc變量oc變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。oc程序中每一個變量都屬于特定的數(shù)據(jù)類型,在使用前必須對其聲明,聲明格式為:
typevarName[=value];
例如:
inti=580;
floatf=12.12f;doubled=0.798;NSString*s=@”helloiphone”;
從本質(zhì)上講,變量其實(shí)是內(nèi)存中的一小塊區(qū)域,使用變量名來訪問這塊區(qū)域,因此,每一個變量使用前必須要先申請(聲明),然后必須進(jìn)行賦值(填充內(nèi)容),才能使用。名字值字張三第6頁,課件共35頁,創(chuàng)作于2023年2月3.執(zhí)行過程中的內(nèi)存管理硬盤程序程序的執(zhí)行過程數(shù)據(jù)區(qū)棧代碼區(qū)堆內(nèi)存1.Load代碼到內(nèi)存區(qū)alloc出來的對象局部變量靜態(tài)變量和字符串常量存放代碼操作系統(tǒng)代碼2.從main函數(shù)開始執(zhí)行代碼第7頁,課件共35頁,創(chuàng)作于2023年2月oc變量的分類按被聲明的位置劃分:
局部變量:方法或語句塊內(nèi)部定義的變量
實(shí)例變量:方法外部、類的內(nèi)部定義的變量按所屬的數(shù)據(jù)類型劃分:
基本數(shù)據(jù)類型變量指針數(shù)據(jù)類型變量第8頁,課件共35頁,創(chuàng)作于2023年2月oc局部變量與成員變量方法體內(nèi)部聲明的變量(包括形參)稱為局部變量:方法體內(nèi)部是指與方法對應(yīng)的大括號內(nèi)部在方法體外,類體內(nèi)聲明的變量成為“實(shí)例變量”或者“成員變量”-(void)getName{inta;intb=a+5;//編譯警告,變量a還未被初始化
floatc=2.8;}第9頁,課件共35頁,創(chuàng)作于2023年2月OC數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型指針數(shù)據(jù)類型類(class)布爾型(Boolean)字符型(char)數(shù)值型id浮點(diǎn)型float,double整數(shù)類型int空類型(void)第10頁,課件共35頁,創(chuàng)作于2023年2月c和oc的基本數(shù)據(jù)類型
int:聲明整型變量
double:聲明雙精度變量
float:聲明浮點(diǎn)型變量
char:聲明字符型變量
id:通用的指針類型enum:聲明枚舉類型
long:聲明長整型變量或函數(shù)
short:聲明短整型變量或函數(shù)
signed:聲明有符號類型變量
struct:聲明結(jié)構(gòu)體變量
union:聲明共用體(聯(lián)合)數(shù)據(jù)類型
unsigned:聲明無符號類型變量
void:聲明函數(shù)無返回值或無參數(shù)第11頁,課件共35頁,創(chuàng)作于2023年2月數(shù)據(jù)類型格式化說明符數(shù)據(jù)類型OC關(guān)鍵字格式說明引導(dǎo)符整型int%d、%i短整型shortint%hd、%hi長類型longint%ld、%li無符號短整型unsignedint%u無短整型unsignedshort%hu無符號長整形unsignedlong%lu類型名OC關(guān)鍵字格式引導(dǎo)說民符浮點(diǎn)型float%f雙精度型double%f長雙精度類longdouble%lf字符型char%c第12頁,課件共35頁,創(chuàng)作于2023年2月整數(shù)類型oc中整數(shù)類型用int來表示,格式化符號用%i或d%來表示比如:inta=100;oc語言的整型常量默認(rèn)為int型,聲明long型常量可以后加‘l’或‘L’,如:
intb=600;//正確longc=88888888888L;類型占用存儲空間值域范圍Byte1個字節(jié)
-128~127short2個字節(jié)
-215~215-1int4個字節(jié)-231~231-1long8個字節(jié)-263~263-1第13頁,課件共35頁,創(chuàng)作于2023年2月浮點(diǎn)類型浮點(diǎn)類型的變量可以存儲包括小數(shù)的值oc中有兩種浮點(diǎn)類型
float有效數(shù)字為6~7位,格式化說明符號用%f表示
double有效數(shù)字為15~16位格式化說明符號用%f,%e或%g表示oc中浮點(diǎn)型常量默認(rèn)為double型,如果要聲明一個常量為float,在數(shù)字的后面加f或F。doublem=3.14159;//正確floatf=3.14f;下面列出oc的各種浮點(diǎn)類型類型占用存儲空間值域范圍float4字節(jié)-3.403E38~3.403E38double8字節(jié)-1.798E308~1.798E308第14頁,課件共35頁,創(chuàng)作于2023年2月字符charchar型數(shù)據(jù)用來表示通常意義上的”字符”,格式化說明符用%c表示字符常量為用單引號括起來的單個字符,例如:charachar=‘a(chǎn)’;charb=‘0’;charcChar=‘蘋’;值域范圍:-128~127“\n”,oc編譯器把這個當(dāng)作單個字符unsignedchar值域范圍:0~255oc字符采用Unicode
編碼,每個字符占兩個字節(jié),因而可用十六進(jìn)制編碼形式表示,例如:charc1='\u0061';注:Unicode是全球語言統(tǒng)一編碼第15頁,課件共35頁,創(chuàng)作于2023年2月char類型(ASCII碼)第16頁,課件共35頁,創(chuàng)作于2023年2月邏輯型
BooleanBoolean類型指的是用于存儲真值和假值的變量,一般用于程序流程控制。
Boolean類型數(shù)據(jù)允許取值true或false,也可以是0或非0的整數(shù)替代true和false,這點(diǎn)和java語言不同。實(shí)例:
Booleanflag=true;if(flag){NSLog(@”HelloiPhone”);}第17頁,課件共35頁,創(chuàng)作于2023年2月限定詞
longint:聲明變量xx為long的整型變量。格式化符為%li,如:longinta;longlongint:聲明變量xx為longlong的整型變量,格式化符%lli,如:longlongintb;longdouble:跟int基本相同
unsignedint:聲明無符號的整型變量.如:unsignedintc;signedint:聲明有符號的整型變量.如:signedintd;第18頁,課件共35頁,創(chuàng)作于2023年2月void類型告訴編譯器沒有任何范圍類型的值不能像其他數(shù)據(jù)類型一樣來聲明變量例如:voidi=10;//錯誤
void通常與方法一起搭配使用,比如:
-(void)test{//code}第19頁,課件共35頁,創(chuàng)作于2023年2月
id類型
id類型是oc中獨(dú)有的數(shù)據(jù)類型,它可以存儲任何類型的對象,從某種意義上說,它就是一般的對象類型。將number聲明為id類型的變量。如:idnumber;
格式化說明符:%p第20頁,課件共35頁,創(chuàng)作于2023年2月基本數(shù)據(jù)類型轉(zhuǎn)換
oc中可以從任意基本數(shù)據(jù)類型轉(zhuǎn)型到另外的基本類型轉(zhuǎn)換分為默認(rèn)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換整型,字符型,浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算中相互轉(zhuǎn)換,轉(zhuǎn)換時需遵循以下原則:容量小的類型默認(rèn)轉(zhuǎn)換為容量大的數(shù)據(jù)類型;數(shù)據(jù)類型按容量大小排序?yàn)椋?/p>
Byte,short,char-->int-->long-->float-->doubleByte,short,char之間不會互相轉(zhuǎn)換,他們?nèi)咴谟?jì)算時首先會轉(zhuǎn)換成int類型。容量大的數(shù)據(jù)類型轉(zhuǎn)換成容量小的數(shù)據(jù)類型,要加上強(qiáng)制轉(zhuǎn)換符,但可能造成精度降低或溢出;使用時要格外注意。實(shí)數(shù)常量(如:2.9)默認(rèn)為double,整數(shù)常量(如:123)默認(rèn)為int第21頁,課件共35頁,創(chuàng)作于2023年2月運(yùn)算符
OC語言支持如下運(yùn)算符:算術(shù)運(yùn)算符:+,-,*,/,%,++,--
關(guān)系運(yùn)算符:>,<,>=,<=,==,!=
邏輯運(yùn)算符:!,&,|,^,&&,||
位運(yùn)算符:&,|,^,~,>>,<<,>>>
賦值運(yùn)算符:=
擴(kuò)展賦值運(yùn)算符:+=,-=,*=,/=第22頁,課件共35頁,創(chuàng)作于2023年2月自加和自減運(yùn)算符-(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注意:
++(--)
在前時先運(yùn)算再取值在后時先取值再運(yùn)算第23頁,課件共35頁,創(chuàng)作于2023年2月邏輯預(yù)算符邏輯運(yùn)算符: !:邏輯非&:邏輯與|:邏輯或^:邏輯異或&&:短路與||:短路或-(void)test{inti=3,j=4;Booleanflag3=(i>3)&&((i+j)>5);//第二個操作數(shù)將不再計(jì)算
Booleanflag4=(i<2)||((i+j)<6);}-(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);}第24頁,課件共35頁,創(chuàng)作于2023年2月賦值運(yùn)算符與擴(kuò)展賦值運(yùn)算符賦值運(yùn)算符(=)當(dāng)“=”兩側(cè)數(shù)據(jù)類型不一致時,可以適用默認(rèn)類型轉(zhuǎn)換或使用強(qiáng)制類型轉(zhuǎn)換原則進(jìn)行處理
longl=100;inti=(int)l;注意:可以將整型常量直接賦值給Byte,short,char等類型變量,而不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,只要不超出其數(shù)值范圍
Byteb=11;charc=456;XBytebb=23;Xshorts=-32769;第25頁,課件共35頁,創(chuàng)作于2023年2月表達(dá)式表達(dá)式是符合一定語法規(guī)則的運(yùn)算符和操作數(shù)的序列
a1.0+a(a-b)*c-1i<10&&i%10!=0表達(dá)式的類型和值對表達(dá)式中操作數(shù)進(jìn)行運(yùn)算得到的結(jié)果稱為表達(dá)式的值。表達(dá)式值的數(shù)據(jù)類型即為表達(dá)式的類型。表達(dá)式的運(yùn)算順序應(yīng)按照運(yùn)算符的優(yōu)先級從高到低的順序進(jìn)行。優(yōu)先級相同的運(yùn)算符按照事先約定的結(jié)合方向進(jìn)行。從右到左.(){};,從左到右++--~!從左到右*/%從左到右+-從左到右<<>>>>>>從左到右==!=從左到右&從左到右^從左到右|從左到右&&從左到右||從左到右?:從右到左=*=/=%=+=-=<<=>>=>>>=&=^=|=低高第26頁,課件共35頁,創(chuàng)作于2023年2月三目運(yùn)算符三目條件運(yùn)算符,語法格式:
x?y:z
其中x為Boolean類型表達(dá)式,先計(jì)算x的值,若為true,則整個三目運(yùn)算的結(jié)果為表達(dá)式y(tǒng)的值,否則整個運(yùn)算結(jié)果為表達(dá)式z的值。比如:
intscore=80;intx=-100;NSString*type=score<60?“不及格”:“及格”;
intflag=x>0?1:(x==0?0:-1);NSLog(@”type=”+type);NSLog(@”flag=”+flag);type=及格flag=-1第27頁,課件共35頁,創(chuàng)作于2023年2月語句條件語句-根據(jù)不同條件,執(zhí)行不同語句
ifif...elseif...elseifif...elseif...elseif...elseswitch
循環(huán)語句-重復(fù)執(zhí)行某些動作
forwhiledo...while;第28頁,課件共35頁,創(chuàng)作于2023年2月if語句
if(表達(dá)式)//語句比如:if(天不下雨)我就去打籃球
if...else...if...elseif...if...elseif...elseif...if...elseif...elseif...else
只有一句需要執(zhí)行的語句時,可以省略{},為了是代碼可讀性更好,但是不推薦省略。第29頁,課件共35頁,創(chuàng)作于2023年2月for循環(huán)語句for語句為如下形式:
for(表達(dá)式1;循環(huán)條件;表達(dá)式2){//語句;…;}執(zhí)行過程
先求表達(dá)式1的值,再求循環(huán)條件的值,如果條件不滿足(即表達(dá)式為false),循環(huán)立即終止。然后執(zhí)行在循環(huán)之后的程序語句。如果條件滿足,繼續(xù)執(zhí)行循環(huán)條件的值,如果條件滿足,執(zhí)行表達(dá)式2如此重復(fù)執(zhí)行,直到條件不滿足,退出循環(huán)。
循環(huán)條件=true計(jì)算表達(dá)式2語句結(jié)束for語句=false計(jì)算表達(dá)式1實(shí)例:
for(inti=0;i<10;i++){NSLog(@”i”);}第30頁,課件共35頁,創(chuàng)作于2023年2月while和dowhilewhile語句為格式:
while(邏輯表達(dá)式){語句;…;}
執(zhí)行過程先判斷邏輯表達(dá)式的值。若為true.則執(zhí)行其后面的語句,然后再次判斷條件并反復(fù)執(zhí)行,直到條件不成立循環(huán)終止。表達(dá)式語句結(jié)束while表達(dá)式語句結(jié)束dowhilewhile語句為格式:
do{語句;}while(邏輯表達(dá)式);
執(zhí)行過程先執(zhí)行語句,再判斷邏輯表達(dá)式的值。若為true,再執(zhí)行語句,否則終止循環(huán)。第31頁,課件共35頁,創(chuàng)作于2023年2月break和continue
break語句用于終止某個語句塊的執(zhí)行。用在循環(huán)語句體中,可以強(qiáng)行退出循環(huán);-(void)test{
intj=3;
for(inti=1;i<=10;i++){
//當(dāng)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)過程;例如:-(void)test{
intflag=3;
for(inti=1;i<=5;i++){
//當(dāng)i等于flag時,跳過當(dāng)次循環(huán)
if(i==flag)continue;
NSLog(@"i=%d",i);}}第32頁,課件共35頁,創(chuàng)作于2023年2月while、break和continue實(shí)例//輸出10-100
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商丘工學(xué)院《織物產(chǎn)品結(jié)構(gòu)與工藝(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 汕尾職業(yè)技術(shù)學(xué)院《運(yùn)動療法技術(shù)學(xué)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 收取合作公司禮品合同范例
- 汕頭大學(xué)《染織工藝基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 出售學(xué)校學(xué)區(qū)房合同范例
- 2024至2030年耐火材料干片項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年硝酸鉀項(xiàng)目投資價(jià)值分析報(bào)告
- 租賃男友合同范例
- 電箱購銷合同范例
- 2024至2030年冰雪玻璃項(xiàng)目投資價(jià)值分析報(bào)告
- 全國運(yùn)動員代表資格協(xié)議書
- 小學(xué)消防安全檢查記錄表【模板】
- 制氫操作規(guī)程6篇
- GB/T 4744-2013紡織品防水性能的檢測和評價(jià)靜水壓法
- 期末復(fù)習(xí)必背作文 魯教版八年級上冊英語全冊
- 《食品毒理學(xué)》教學(xué)PPT課件整套電子講義
- 公路機(jī)電工程施工規(guī)范
- QUALITY MANUAL質(zhì)量手冊(英文版)
- 高考語文復(fù)習(xí):詩歌意象專題訓(xùn)練
- 國開經(jīng)濟(jì)學(xué)(本)1-14章練習(xí)試題及答案
- 救助消防安全管理制度
評論
0/150
提交評論