收藏 分享(赏)

OC基础语法1PPT课件.ppt

上传人:Facebook 文档编号:3723221 上传时间:2018-11-16 格式:PPT 页数:34 大小:728.50KB
下载 相关 举报
OC基础语法1PPT课件.ppt_第1页
第1页 / 共34页
OC基础语法1PPT课件.ppt_第2页
第2页 / 共34页
OC基础语法1PPT课件.ppt_第3页
第3页 / 共34页
OC基础语法1PPT课件.ppt_第4页
第4页 / 共34页
OC基础语法1PPT课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、Objective-C基础语法,核心内容,标识符 关键字 OC基本数据类型 运算符 表达式和语句 分支和循环 变量的作用域,标识符,OC语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标志符。,标识符由字母、下划线“_”、美元符“$”和数字组成标识符必须以字母、下划线、美元符号开头标识符大小写敏感,长度无限制,oc标识符有如下命名规则:,约定俗成:oc标识符选取要“见名之意”,并且不能与oc中保留字重名。,关键字,OC中一些具有特定含义的,系统专门使用的字符串称为“保留字”,或者叫“关键字”(keyword)。OC中的关键字全部都是小写。,OC常量,如整型常量:3456实型常量:3.

2、1415926字符常量:a逻辑常量:true、false字符串常量:“hello iphone”,OC中的常量值用字符串表示,区分不同的数据类型,区分字符常量和字符串常量,注意:,OC变量,OC变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。OC程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:type varName =value;例如:int i = 580;float f = 12.12f;double d = 0.798;NSString *s = “hello iphone“;从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,

3、因此,每一个变量使用前必须要先申请(声明),然后必须进行复制(填充内容),才能使用。,程序的执行过程,硬盘,程序,1.Load代码到内存区,代码,操作系统代码,alloc出来的,局部变量,静态变量和字符串变量,存放代码,内存,2.从main函数开始执行,堆,栈,数据区,代码区,2.执行过程中的内存管理,OC变量的分类,局部变量:方法或语句块内部定义的变量实例变量:方法外部、类的内部定义的变量,按被声明的位置划分:,基本数据类型变量指针数据类型变量,按所属的数据类型划分:,OC局部变量与成员变量,方法体内部声明的变量(包括形参)称为局部变量:方法体内部是指与方法对应的大括号内部,在方法体外,类体

4、内声明的变量称为“实例变量”或者“成员变量”- (void) getNameint a; int b = a + 5; /编译警告,变量a还未被初始化float c = 2.8;,OC数据类型,数据类型,基本数据类型,指针数据类型,数值型,字符型(char),布尔型,空类型(void),类(class),id,整数类型int,浮点型float,double,C和OC的基本数据类型,int:声明整形变量 double:声明双精度变量 float:声明浮点型变量 char:声明字符型变量 id:通用的指针类型 enum:声明枚举类型 long:声明长整形变量或函数,short:声明短整型变量或函数

5、 signed:声明有符号类型变量 union:声明共用体(联合)数据类型 unsigned:声明无符号类型变量 void:声明函数无返回值或无参数,数据类型格式化说明符,整数类型,OC中整数类型用int来表示,格式化符号用%i或d%来表示比如: int a = 100;OC语言的整型常量默认为int型,声明long型常量可以后加l或L,如:int b = 600; /正确 long c = 888888888888L;,浮点类型,浮点类型的变量可以存储包括小数的值,OC中浮点型常量默认为double型,如果要声明一个常量为float,在数字的后面加f或F。double m = 3.14159

6、; /正确 float f = 3.14f;下面列出OC的各种浮点类型,float 有效数字为67位,格式化说明符号用%f表示double 有效数字为1516位 格式化说明符号用%f, %e或%g表示,OC中有两种浮点类型,字符char,Char型数据用来表示通常意义上的“字符”,格式化说明符用%c表示字符常量为用单引号括起来的单个字符,例如:char achar = a; char b = 0 ; char cChar = 苹;值域范围:-128127“n“,OC编译器把这个当作单个字符unsigned char 值域范围:0 255OC字符采用Unicode编码,每个字符占两个字节,因而可

7、用十六进制编码形式表示,例如:,char c1 = u0061;注:Unicode是全球语言统一编码,char類型(ASCII碼),逻辑型Boolean,Boolean类型指的是用于存储真值和假值的变量,一般用于程序流程控制。Boolean类型数据允许取值true或false,也可以是0或非0的整数替代true和false,这点和java语言不通。java里面boolean是基本数据类型,Boolean是它的封装类,和其他类一样,有属性有方法,可以new.实例:Boolean flag = true;if (flag)NSLog(“Hello iPhone“);,限定词,long int: 声

8、明变量xx为long的整形变量。格式化符为%li,如:long int a;long long int: 声明变量xx为long long的整形变量,格式化符%lli,如:long long int b;long double: 跟int基本相同unsigned int: 声明无符号的整型变量。如:unsigned int c;signed int: 声明有符号的整型变量。如:signed int d;,void类型,告诉编译器没有任何范围类型的值不能像其他数据类型一样来声明变量例如:void i = 10; /错误void通常与方法一起搭配使用,比如:- (void)test/code,id

9、类型,id类型是oc中独有的数据类型。在概念上,类似Java的Object类,可以转换为任何数据类型,可以存储任何类型的对象,从某种意义上说,它就是一般的对象模型。在内部处理上,这种类型被定义为指向对象的指针,将number声明为id类型的变量。如:id number;格式化说明符:%p,基本数据类型转换,OC中可以从任意基本数据类型转型到另外的基本类型转换分为默认转换和强制转换整型,字符型,浮点型的数据在混合运算中相互转换,转换时需遵循以下原则:,容量小的类型默认转换为容量大的数据类型;数据类型按容量大小排序为:Byte,short,char intlongfloatdoubleByte,

10、short, char之间不会相互转换,他们三者在计算时首先会转换成int类型。容量大的数据类型转换成容量小的数据类型,要加上强制转换符,但可能造成精度降低或溢出;使用时要格外注意。实数常量(如:2.9)默认为double,整数常量(如:123)默认为int,运算符,OC语言支持如下运算符:算数运算符:+,-,*,/, %, +, -关系运算符:, =, , 赋值运算符:=扩展赋值运算符:+=, -=, *=, /=,自加和自减运算符,- (void)getNumber int i1 = 10, i2 = 12;int i = i2+;NSLog(“i = %d“, i);NSLog(“i2

11、= %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 = 12 i2 = 13 i = 14 i2 = 14 i = 9 i1 = 9 i = 9 i1 = 8注意: +(-) 在前时先运算再取值 在后时先取值再运算,逻辑运算符,逻辑运算符:! :逻辑非 &:逻辑与 |:逻辑或 :逻辑异或 &:短路与 |:短路或,- (voi

12、d)test Boolean a, b, c;a = true; b = false;c = a ,- (void)test int i = 3, j = 4;Boolean flag3 = (i3) /第二个操作数不再计算Boolean flag4 = (i2)|(i+j)6) ,赋值运算符与扩展运算符,赋值运算符(=)当“=”两侧数据类型不一致时,可以适用默认类型转换或适用强制类型转换原则进行处理long l = 100; int i = (int)l;注意:可以将整型常量直接赋值给Byte,short,char等类型变量,而不需要进行强制类型转换,只要不超过其数据范围Byte b = 1

13、1; char c = 456;,表达式,表达式是符合一定语法规则的运算符和操作数的序列 a 1.0 + a (a-b)*c-1 i10 & i%10 != 0 表达式的类型和值 对表达式中操作数进行运算得到的结果称为表达式的值。 表达式值的数据类型即为表达式的类型。 表达式的运算顺序 应按照运算符的优先级从高到底的顺序进行。 优先级相同的运算符按照事先约定的结合方向进行。,三目运算符,三目条件运算符,语法格式:x?y:z 其中x为Boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。 比如:int score = 80; i

14、nt x = -100;NSString *type = score 0 ? 1 : (x = 0 ? 0 : -1);NSLog(“type = “ + type);NSLog(“flag = “ + flag);,语句,ifif . elseif . else ifif . else if . else if . elseswitch,条件语句 - 根据不同条件,执行不同语句,forwhiledo . while,循环语句 - 重复执行某些动作,if语句,if(表达式) /语句 比如:if(天不下雨) 我就. if . else . if . else if . if . else if

15、. else if . if . else if . else if . else 只有一句需要执行的语句时,可以省略,为了是代码可读性更好,但是不推荐省略,for循环语句,for语句为如下形式:for(表达式1;循环条件;表达式2) /语句;. ;执行过程:先求表达式1的值,再求循环条件的值,如果条件不满足(即表达式为false),循环立即终止。然后执行在循环之后的程序语句。如果条件满足,继续执行循环条件的值,如果条件满足,执行表达式2,如此重复执行,直到条件不满足,退出循环。,while和do while,while语句为格式:while(逻辑表达式) 语句:. ; 执行过程先判断逻辑表达

16、式的值。若为true,则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成。,while语句为格式:do 语句; while(逻辑表达式); 执行过程先执行语句,再判断逻辑表达式。,break和continue,break语句用于终止某个语句块的执行。用在循环语句体重,可以强行退出循环; - (void) test int j = 3;for (int i = 1; i=10; i+)/当i等于j时,退出循环if (i = j)break;NSLog(“ i = %d“, i); ,continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的

17、循环,开始下一次循环过程; 例如: - (void)test int flag = 3;for (int i = 1; i=5; i+)/当i等于flag时,跳过当次循环if(i = flag) continue;NSLog(“i = %d“, i); ,while、break和continue实例,/输出10-100内前5个可以被4整除的数 - (void)test int num = 0, i = 10;while(i = 100) if (i%4 = 0) NSLog(“%d“, i);num +;if (num = 5) break;i+; ,/输出1 - 100内的质数 - (void)test for(int i = 1; i100; i+= 2) Boolean flag = true;for(int j = 2; ji; j+) if(i%j = 0) flag = false;break;if(!flag) continue;NSLog(“%d“, i); ,switch(条件语句),switch() case xx:.;case xx:.;default:.; 小心case穿透,推荐使用break语句与之搭配使用 多个case可以合并到一起 default可以省略,但不推荐省略 switch的值必须是int类型,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 语法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报