




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无限互联之基础语法介绍第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学反思如何促进学生主动学习试题及答案
- 幼儿园数学问题解决试题及答案
- 新能源汽车的政策导向分析试题及答案
- 月基础理论试题及答案
- 2025年入党培训测试题及答案(一)
- 物流金融服务在供应链金融创新中的应用场景与风险控制研究
- 绞车运输工试题及答案
- 工业催化考试题及答案
- 教育大数据在2025年教育行业数据驱动战略规划中的应用研究
- 环境监测面试真题及答案
- 浙江省金华义乌市稠州中学2024-2025学年九年级下学期3月独立作业英语试卷(原卷版+解析版)
- 模拟退火与数论-深度研究
- 驾照考试科目一试题900题(含标准答案)022506
- 水利项目立项报告
- 幼儿园初级保育员考试题库(附答案)
- 【MOOC】航空燃气涡轮发动机结构设计-北京航空航天大学 中国大学慕课MOOC答案
- 家政服务人员岗前培训
- 国家生物安全培训课件
- 专题11 名著阅读之《童年》(考题猜想)(期中真题速递20题)(含答案解析)
- TSGD7002-2023-压力管道元件型式试验规则
- 无人机组装与调试 课件全套 项目1-3 无人机组装调试基础、多旋翼无人机组装与调试、垂直起降无人机组装调试
评论
0/150
提交评论