




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
無限互聯(lián)之基礎(chǔ)語法介紹第一頁,共三十五頁,2022年,8月28日核心內(nèi)容標(biāo)示符關(guān)鍵字oc基本數(shù)據(jù)類型運算符表達式和語句分支和循環(huán)變量的作用域第二頁,共三十五頁,2022年,8月28日標(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第三頁,共三十五頁,2022年,8月28日關(guān)鍵字
oc中一些具有特定含義的,系統(tǒng)專門使用的字符串稱為“保留字”,或者叫“關(guān)鍵字”(keyword).oc中的關(guān)鍵字全部都是小寫。intenumfloatgotodoubleregistershortsizeofstructtypedefunsignedvolatilebreakcharcontinuedolongexternforwhileautoreturnsignedstaticswitchunionvoidifcaseconstdefaultelse第四頁,共三十五頁,2022年,8月28日oc常量
oc中的常量值用字符串表示,區(qū)分不同的數(shù)據(jù)類型如整型常量:3456
實型常量:3.1415926
字符常量:‘a(chǎn)’
邏輯常量:true、false
字符串常量:“helloiphone”注意:區(qū)分字符常量和字符串常量第五頁,共三十五頁,2022年,8月28日oc變量oc變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。oc程序中每一個變量都屬于特定的數(shù)據(jù)類型,在使用前必須對其聲明,聲明格式為:
typevarName[=value];
例如:
inti=580;
floatf=12.12f;doubled=0.798;NSString*s=@”helloiphone”;
從本質(zhì)上講,變量其實是內(nèi)存中的一小塊區(qū)域,使用變量名來訪問這塊區(qū)域,因此,每一個變量使用前必須要先申請(聲明),然后必須進行賦值(填充內(nèi)容),才能使用。名字值字張三第六頁,共三十五頁,2022年,8月28日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í)行代碼第七頁,共三十五頁,2022年,8月28日oc變量的分類按被聲明的位置劃分:
局部變量:方法或語句塊內(nèi)部定義的變量
實例變量:方法外部、類的內(nèi)部定義的變量按所屬的數(shù)據(jù)類型劃分:
基本數(shù)據(jù)類型變量指針數(shù)據(jù)類型變量第八頁,共三十五頁,2022年,8月28日oc局部變量與成員變量方法體內(nèi)部聲明的變量(包括形參)稱為局部變量:方法體內(nèi)部是指與方法對應(yīng)的大括號內(nèi)部在方法體外,類體內(nèi)聲明的變量成為“實例變量”或者“成員變量”-(void)getName{inta;intb=a+5;//編譯警告,變量a還未被初始化
floatc=2.8;}第九頁,共三十五頁,2022年,8月28日OC數(shù)據(jù)類型數(shù)據(jù)類型基本數(shù)據(jù)類型指針數(shù)據(jù)類型類(class)布爾型(Boolean)字符型(char)數(shù)值型id浮點型float,double整數(shù)類型int空類型(void)第十頁,共三十五頁,2022年,8月28日c和oc的基本數(shù)據(jù)類型
int:聲明整型變量
double:聲明雙精度變量
float:聲明浮點型變量
char:聲明字符型變量
id:通用的指針類型enum:聲明枚舉類型
long:聲明長整型變量或函數(shù)
short:聲明短整型變量或函數(shù)
signed:聲明有符號類型變量
struct:聲明結(jié)構(gòu)體變量
union:聲明共用體(聯(lián)合)數(shù)據(jù)類型
unsigned:聲明無符號類型變量
void:聲明函數(shù)無返回值或無參數(shù)第十一頁,共三十五頁,2022年,8月28日數(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)說民符浮點型float%f雙精度型double%f長雙精度類longdouble%lf字符型char%c第十二頁,共三十五頁,2022年,8月28日整數(shù)類型oc中整數(shù)類型用int來表示,格式化符號用%i或d%來表示比如:inta=100;oc語言的整型常量默認為int型,聲明long型常量可以后加‘l’或‘L’,如:
intb=600;//正確longc=88888888888L;類型占用存儲空間值域范圍Byte1個字節(jié)
-128~127short2個字節(jié)
-215~215-1int4個字節(jié)-231~231-1long8個字節(jié)-263~263-1第十三頁,共三十五頁,2022年,8月28日浮點類型浮點類型的變量可以存儲包括小數(shù)的值oc中有兩種浮點類型
float有效數(shù)字為6~7位,格式化說明符號用%f表示
double有效數(shù)字為15~16位格式化說明符號用%f,%e或%g表示oc中浮點型常量默認為double型,如果要聲明一個常量為float,在數(shù)字的后面加f或F。doublem=3.14159;//正確floatf=3.14f;下面列出oc的各種浮點類型類型占用存儲空間值域范圍float4字節(jié)-3.403E38~3.403E38double8字節(jié)-1.798E308~1.798E308第十四頁,共三十五頁,2022年,8月28日字符charchar型數(shù)據(jù)用來表示通常意義上的”字符”,格式化說明符用%c表示字符常量為用單引號括起來的單個字符,例如:charachar=‘a(chǎn)’;charb=‘0’;charcChar=‘蘋’;值域范圍:-128~127“\n”,oc編譯器把這個當(dāng)作單個字符unsignedchar值域范圍:0~255oc字符采用Unicode
編碼,每個字符占兩個字節(jié),因而可用十六進制編碼形式表示,例如:charc1='\u0061';注:Unicode是全球語言統(tǒng)一編碼第十五頁,共三十五頁,2022年,8月28日char類型(ASCII碼)第十六頁,共三十五頁,2022年,8月28日邏輯型
BooleanBoolean類型指的是用于存儲真值和假值的變量,一般用于程序流程控制。
Boolean類型數(shù)據(jù)允許取值true或false,也可以是0或非0的整數(shù)替代true和false,這點和java語言不同。實例:
Booleanflag=true;if(flag){NSLog(@”HelloiPhone”);}第十七頁,共三十五頁,2022年,8月28日限定詞
longint:聲明變量xx為long的整型變量。格式化符為%li,如:longinta;longlongint:聲明變量xx為longlong的整型變量,格式化符%lli,如:longlongintb;longdouble:跟int基本相同
unsignedint:聲明無符號的整型變量.如:unsignedintc;signedint:聲明有符號的整型變量.如:signedintd;第十八頁,共三十五頁,2022年,8月28日void類型告訴編譯器沒有任何范圍類型的值不能像其他數(shù)據(jù)類型一樣來聲明變量例如:voidi=10;//錯誤
void通常與方法一起搭配使用,比如:
-(void)test{//code}第十九頁,共三十五頁,2022年,8月28日
id類型
id類型是oc中獨有的數(shù)據(jù)類型,它可以存儲任何類型的對象,從某種意義上說,它就是一般的對象類型。將number聲明為id類型的變量。如:idnumber;
格式化說明符:%p第二十頁,共三十五頁,2022年,8月28日基本數(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)默認為int第二十一頁,共三十五頁,2022年,8月28日運算符
OC語言支持如下運算符:算術(shù)運算符:+,-,*,/,%,++,--
關(guān)系運算符:>,<,>=,<=,==,!=
邏輯運算符:!,&,|,^,&&,||
位運算符:&,|,^,~,>>,<<,>>>
賦值運算符:=
擴展賦值運算符:+=,-=,*=,/=第二十二頁,共三十五頁,2022年,8月28日自加和自減運算符-(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注意:
++(--)
在前時先運算再取值在后時先取值再運算第二十三頁,共三十五頁,2022年,8月28日邏輯預(yù)算符邏輯運算符: !:邏輯非&:邏輯與|:邏輯或^:邏輯異或&&:短路與||:短路或-(void)test{inti=3,j=4;Booleanflag3=(i>3)&&((i+j)>5);//第二個操作數(shù)將不再計算
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);}第二十四頁,共三十五頁,2022年,8月28日賦值運算符與擴展賦值運算符賦值運算符(=)當(dāng)“=”兩側(cè)數(shù)據(jù)類型不一致時,可以適用默認類型轉(zhuǎn)換或使用強制類型轉(zhuǎn)換原則進行處理
longl=100;inti=(int)l;注意:可以將整型常量直接賦值給Byte,short,char等類型變量,而不需要進行強制類型轉(zhuǎn)換,只要不超出其數(shù)值范圍
Byteb=11;charc=456;XBytebb=23;Xshorts=-32769;第二十五頁,共三十五頁,2022年,8月28日表達式表達式是符合一定語法規(guī)則的運算符和操作數(shù)的序列
a1.0+a(a-b)*c-1i<10&&i%10!=0表達式的類型和值對表達式中操作數(shù)進行運算得到的結(jié)果稱為表達式的值。表達式值的數(shù)據(jù)類型即為表達式的類型。表達式的運算順序應(yīng)按照運算符的優(yōu)先級從高到低的順序進行。優(yōu)先級相同的運算符按照事先約定的結(jié)合方向進行。從右到左.(){};,從左到右++--~!從左到右*/%從左到右+-從左到右<<>>>>>>從左到右==!=從左到右&從左到右^從左到右|從左到右&&從左到右||從左到右?:從右到左=*=/=%=+=-=<<=>>=>>>=&=^=|=低高第二十六頁,共三十五頁,2022年,8月28日三目運算符三目條件運算符,語法格式:
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);type=及格flag=-1第二十七頁,共三十五頁,2022年,8月28日語句條件語句-根據(jù)不同條件,執(zhí)行不同語句
ifif...elseif...elseifif...elseif...elseif...elseswitch
循環(huán)語句-重復(fù)執(zhí)行某些動作
forwhiledo...while;第二十八頁,共三十五頁,2022年,8月28日if語句
if(表達式)//語句比如:if(天不下雨)我就去打籃球
if...else...if...elseif...if...elseif...elseif...if...elseif...elseif...else
只有一句需要執(zhí)行的語句時,可以省略{},為了是代碼可讀性更好,但是不推薦省略。第二十九頁,共三十五頁,2022年,8月28日for循環(huán)語句for語句為如下形式:
for(表達式1;循環(huán)條件;表達式2){//語句;…;}執(zhí)行過程
先求表達式1的值,再求循環(huán)條件的值,如果條件不滿足(即表達式為false),循環(huán)立即終止。然后執(zhí)行在循環(huán)之后的程序語句。如果條件滿足,繼續(xù)執(zhí)行循環(huán)條件的值,如果條件滿足,執(zhí)行表達式2如此重復(fù)執(zhí)行,直到條件不滿足,退出循環(huán)。
循環(huán)條件=true計算表達式2語句結(jié)束for語句=false計算表達式1實例:
for(inti=0;i<10;i++){NSLog(@”i”);}第三十頁,共三十五頁,2022年,8月28日while和dowhilewhile語句為格式:
while(邏輯表達式){語句;…;}
執(zhí)行過程先判斷邏輯表達式的值。若為true.則執(zhí)行其后面的語句,然后再次判斷條件并反復(fù)執(zhí)行,直到條件不成立循環(huán)終止。表達式語句結(jié)束while表達式語句結(jié)束dowhilewhile語句為格式:
do{語句;}while(邏輯表達式);
執(zhí)行過程先執(zhí)行語句,再判斷邏輯表達式的值。若為true,再執(zhí)行語句,否則終止循環(huán)。第三十一頁,共三十五頁,2022年,8月28日break和continue
break語句用于終止某個語句塊的執(zhí)行。用在循環(huán)語句體中,可以強行退出循環(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);}}第三十二頁,共三十五頁,2022年,8月28日while、break和continue實例//輸出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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 別墅整體裝修合同范本
- 2025屆高考生物備考教學(xué)設(shè)計:課時1 降低化學(xué)反應(yīng)活化能的酶
- 高考動員大會講話稿
- 股權(quán)用工合同范本
- 水泥合同范本
- Module 10 Unit 2 第一課時教學(xué)設(shè)計 2024-2025學(xué)年外研版八年級英語上冊
- Module 5 Unit1 Can you run fast?(教學(xué)設(shè)計)-2024-2025學(xué)年外研版(三起)英語四年級上冊
- 百尺河小學(xué)學(xué)校教學(xué)工作計劃
- 租雞棚合同范本
- 產(chǎn)品拼裝合同范本
- 《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》解讀與專題培訓(xùn)
- 2025年春新人教版化學(xué)九年級下冊課件 第九單元 溶液 1-課題1 溶液及其應(yīng)用 第1課時 溶液的形成
- 2024-2025學(xué)年高中物理第十二章機械波4波的衍射和干涉課時作業(yè)含解析新人教版選修3-4
- 2025年新華師大版數(shù)學(xué)七年級下冊全冊導(dǎo)學(xué)案
- 安全管理人員七大職責(zé)
- 音樂教育國際化進程-洞察分析
- 植入式靜脈給藥裝置護理技術(shù)課件
- GB/T 24091-2024適應(yīng)氣候變化脆弱性、影響和風(fēng)險評估指南
- 2024年山東工程職業(yè)技術(shù)大學(xué)單招職業(yè)傾向性測試題庫(500題)含答案解析
- 生活垃圾我知道(課件)二年級下冊勞動
- 每日系列-計算小紙條-3年級下冊
評論
0/150
提交評論