無限互聯之基礎語法介紹_第1頁
無限互聯之基礎語法介紹_第2頁
無限互聯之基礎語法介紹_第3頁
無限互聯之基礎語法介紹_第4頁
無限互聯之基礎語法介紹_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

無限互聯之基礎語法介紹第1頁,課件共35頁,創作于2023年2月核心內容標示符關鍵字oc基本數據類型運算符表達式和語句分支和循環變量的作用域第2頁,課件共35頁,創作于2023年2月標示符

oc語言中,對各種變量、方法和類等要素命名時使用的字符序列稱為標示符。

oc標示符有如下命名規則:

標示符由字母、下劃線“_”、美元符“$”和數字組成標示符必須以字母、下劃線、美元符號開頭

oc標示符大小寫敏感,長度無限制約定俗成:oc標示符選取要“見名知意”,并且不能與oc中保留字重名。合法標示符非法標示符ZhangSanifDogGirl*#_998^sad90$as_34d34_sdf第3頁,課件共35頁,創作于2023年2月關鍵字

oc中一些具有特定含義的,系統專門使用的字符串稱為“保留字”,或者叫“關鍵字”(keyword).oc中的關鍵字全部都是小寫。intenumfloatgotodoubleregistershortsizeofstructtypedefunsignedvolatilebreakcharcontinuedolongexternforwhileautoreturnsignedstaticswitchunionvoidifcaseconstdefaultelse第4頁,課件共35頁,創作于2023年2月oc常量

oc中的常量值用字符串表示,區分不同的數據類型如整型常量:3456

實型常量:3.1415926

字符常量:‘a’

邏輯常量:true、false

字符串常量:“helloiphone”注意:區分字符常量和字符串常量第5頁,課件共35頁,創作于2023年2月oc變量oc變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。oc程序中每一個變量都屬于特定的數據類型,在使用前必須對其聲明,聲明格式為:

typevarName[=value];

例如:

inti=580;

floatf=12.12f;doubled=0.798;NSString*s=@”helloiphone”;

從本質上講,變量其實是內存中的一小塊區域,使用變量名來訪問這塊區域,因此,每一個變量使用前必須要先申請(聲明),然后必須進行賦值(填充內容),才能使用。名字值字張三第6頁,課件共35頁,創作于2023年2月3.執行過程中的內存管理硬盤程序程序的執行過程數據區棧代碼區堆內存1.Load代碼到內存區alloc出來的對象局部變量靜態變量和字符串常量存放代碼操作系統代碼2.從main函數開始執行代碼第7頁,課件共35頁,創作于2023年2月oc變量的分類按被聲明的位置劃分:

局部變量:方法或語句塊內部定義的變量

實例變量:方法外部、類的內部定義的變量按所屬的數據類型劃分:

基本數據類型變量指針數據類型變量第8頁,課件共35頁,創作于2023年2月oc局部變量與成員變量方法體內部聲明的變量(包括形參)稱為局部變量:方法體內部是指與方法對應的大括號內部在方法體外,類體內聲明的變量成為“實例變量”或者“成員變量”-(void)getName{inta;intb=a+5;//編譯警告,變量a還未被初始化

floatc=2.8;}第9頁,課件共35頁,創作于2023年2月OC數據類型數據類型基本數據類型指針數據類型類(class)布爾型(Boolean)字符型(char)數值型id浮點型float,double整數類型int空類型(void)第10頁,課件共35頁,創作于2023年2月c和oc的基本數據類型

int:聲明整型變量

double:聲明雙精度變量

float:聲明浮點型變量

char:聲明字符型變量

id:通用的指針類型enum:聲明枚舉類型

long:聲明長整型變量或函數

short:聲明短整型變量或函數

signed:聲明有符號類型變量

struct:聲明結構體變量

union:聲明共用體(聯合)數據類型

unsigned:聲明無符號類型變量

void:聲明函數無返回值或無參數第11頁,課件共35頁,創作于2023年2月數據類型格式化說明符數據類型OC關鍵字格式說明引導符整型int%d、%i短整型shortint%hd、%hi長類型longint%ld、%li無符號短整型unsignedint%u無短整型unsignedshort%hu無符號長整形unsignedlong%lu類型名OC關鍵字格式引導說民符浮點型float%f雙精度型double%f長雙精度類longdouble%lf字符型char%c第12頁,課件共35頁,創作于2023年2月整數類型oc中整數類型用int來表示,格式化符號用%i或d%來表示比如:inta=100;oc語言的整型常量默認為int型,聲明long型常量可以后加‘l’或‘L’,如:

intb=600;//正確longc=88888888888L;類型占用存儲空間值域范圍Byte1個字節

-128~127short2個字節

-215~215-1int4個字節-231~231-1long8個字節-263~263-1第13頁,課件共35頁,創作于2023年2月浮點類型浮點類型的變量可以存儲包括小數的值oc中有兩種浮點類型

float有效數字為6~7位,格式化說明符號用%f表示

double有效數字為15~16位格式化說明符號用%f,%e或%g表示oc中浮點型常量默認為double型,如果要聲明一個常量為float,在數字的后面加f或F。doublem=3.14159;//正確floatf=3.14f;下面列出oc的各種浮點類型類型占用存儲空間值域范圍float4字節-3.403E38~3.403E38double8字節-1.798E308~1.798E308第14頁,課件共35頁,創作于2023年2月字符charchar型數據用來表示通常意義上的”字符”,格式化說明符用%c表示字符常量為用單引號括起來的單個字符,例如:charachar=‘a’;charb=‘0’;charcChar=‘蘋’;值域范圍:-128~127“\n”,oc編譯器把這個當作單個字符unsignedchar值域范圍:0~255oc字符采用Unicode

編碼,每個字符占兩個字節,因而可用十六進制編碼形式表示,例如:charc1='\u0061';注:Unicode是全球語言統一編碼第15頁,課件共35頁,創作于2023年2月char類型(ASCII碼)第16頁,課件共35頁,創作于2023年2月邏輯型

BooleanBoolean類型指的是用于存儲真值和假值的變量,一般用于程序流程控制。

Boolean類型數據允許取值true或false,也可以是0或非0的整數替代true和false,這點和java語言不同。實例:

Booleanflag=true;if(flag){NSLog(@”HelloiPhone”);}第17頁,課件共35頁,創作于2023年2月限定詞

longint:聲明變量xx為long的整型變量。格式化符為%li,如:longinta;longlongint:聲明變量xx為longlong的整型變量,格式化符%lli,如:longlongintb;longdouble:跟int基本相同

unsignedint:聲明無符號的整型變量.如:unsignedintc;signedint:聲明有符號的整型變量.如:signedintd;第18頁,課件共35頁,創作于2023年2月void類型告訴編譯器沒有任何范圍類型的值不能像其他數據類型一樣來聲明變量例如:voidi=10;//錯誤

void通常與方法一起搭配使用,比如:

-(void)test{//code}第19頁,課件共35頁,創作于2023年2月

id類型

id類型是oc中獨有的數據類型,它可以存儲任何類型的對象,從某種意義上說,它就是一般的對象類型。將number聲明為id類型的變量。如:idnumber;

格式化說明符:%p第20頁,課件共35頁,創作于2023年2月基本數據類型轉換

oc中可以從任意基本數據類型轉型到另外的基本類型轉換分為默認轉換和強制轉換整型,字符型,浮點型的數據在混合運算中相互轉換,轉換時需遵循以下原則:容量小的類型默認轉換為容量大的數據類型;數據類型按容量大小排序為:

Byte,short,char-->int-->long-->float-->doubleByte,short,char之間不會互相轉換,他們三者在計算時首先會轉換成int類型。容量大的數據類型轉換成容量小的數據類型,要加上強制轉換符,但可能造成精度降低或溢出;使用時要格外注意。實數常量(如:2.9)默認為double,整數常量(如:123)默認為int第21頁,課件共35頁,創作于2023年2月運算符

OC語言支持如下運算符:算術運算符:+,-,*,/,%,++,--

關系運算符:>,<,>=,<=,==,!=

邏輯運算符:!,&,|,^,&&,||

位運算符:&,|,^,~,>>,<<,>>>

賦值運算符:=

擴展賦值運算符:+=,-=,*=,/=第22頁,課件共35頁,創作于2023年2月自加和自減運算符-(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頁,課件共35頁,創作于2023年2月邏輯預算符邏輯運算符: !:邏輯非&:邏輯與|:邏輯或^:邏輯異或&&:短路與||:短路或-(void)test{inti=3,j=4;Booleanflag3=(i>3)&&((i+j)>5);//第二個操作數將不再計算

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頁,創作于2023年2月賦值運算符與擴展賦值運算符賦值運算符(=)當“=”兩側數據類型不一致時,可以適用默認類型轉換或使用強制類型轉換原則進行處理

longl=100;inti=(int)l;注意:可以將整型常量直接賦值給Byte,short,char等類型變量,而不需要進行強制類型轉換,只要不超出其數值范圍

Byteb=11;charc=456;XBytebb=23;Xshorts=-32769;第25頁,課件共35頁,創作于2023年2月表達式表達式是符合一定語法規則的運算符和操作數的序列

a1.0+a(a-b)*c-1i<10&&i%10!=0表達式的類型和值對表達式中操作數進行運算得到的結果稱為表達式的值。表達式值的數據類型即為表達式的類型。表達式的運算順序應按照運算符的優先級從高到低的順序進行。優先級相同的運算符按照事先約定的結合方向進行。從右到左.(){};,從左到右++--~!從左到右*/%從左到右+-從左到右<<>>>>>>從左到右==!=從左到右&從左到右^從左到右|從左到右&&從左到右||從左到右?:從右到左=*=/=%=+=-=<<=>>=>>>=&=^=|=低高第26頁,課件共35頁,創作于2023年2月三目運算符三目條件運算符,語法格式:

x?y:z

其中x為Boolean類型表達式,先計算x的值,若為true,則整個三目運算的結果為表達式y的值,否則整個運算結果為表達式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頁,創作于2023年2月語句條件語句-根據不同條件,執行不同語句

ifif...elseif...elseifif...elseif...elseif...elseswitch

循環語句-重復執行某些動作

forwhiledo...while;第28頁,課件共35頁,創作于2023年2月if語句

if(表達式)//語句比如:if(天不下雨)我就去打籃球

if...else...if...elseif...if...elseif...elseif...if...elseif...elseif...else

只有一句需要執行的語句時,可以省略{},為了是代碼可讀性更好,但是不推薦省略。第29頁,課件共35頁,創作于2023年2月for循環語句for語句為如下形式:

for(表達式1;循環條件;表達式2){//語句;…;}執行過程

先求表達式1的值,再求循環條件的值,如果條件不滿足(即表達式為false),循環立即終止。然后執行在循環之后的程序語句。如果條件滿足,繼續執行循環條件的值,如果條件滿足,執行表達式2如此重復執行,直到條件不滿足,退出循環。

循環條件=true計算表達式2語句結束for語句=false計算表達式1實例:

for(inti=0;i<10;i++){NSLog(@”i”);}第30頁,課件共35頁,創作于2023年2月while和dowhilewhile語句為格式:

while(邏輯表達式){語句;…;}

執行過程先判斷邏輯表達式的值。若為true.則執行其后面的語句,然后再次判斷條件并反復執行,直到條件不成立循環終止。表達式語句結束while表達式語句結束dowhilewhile語句為格式:

do{語句;}while(邏輯表達式);

執行過程先執行語句,再判斷邏輯表達式的值。若為true,再執行語句,否則終止循環。第31頁,課件共35頁,創作于2023年2月break和continue

break語句用于終止某個語句塊的執行。用在循環語句體中,可以強行退出循環;-(void)test{

intj=3;

for(inti=1;i<=10;i++){

//當i等于j時,退出循環

if(i==j)

break;

NSLog(@"i=%d",i);}}

continue語句用在循環語句體中,用于終止某次循環過程,跳過循環體中continue語句下面未執行的循環,開始下一次循環過程;例如:-(void)test{

intflag=3;

for(inti=1;i<=5;i++){

//當i等于flag時,跳過當次循環

if(i==flag)continue;

NSLog(@"i=%d",i);}}第32頁,課件共35頁,創作于2023年2月while、break和continue實例//輸出10-100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論