無限互聯(lián)之基礎(chǔ)語法介紹_第1頁
無限互聯(lián)之基礎(chǔ)語法介紹_第2頁
無限互聯(lián)之基礎(chǔ)語法介紹_第3頁
無限互聯(lián)之基礎(chǔ)語法介紹_第4頁
無限互聯(lián)之基礎(chǔ)語法介紹_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論