Objective-C之成魔之路【5-选择结构】

重开发者的劳动成果,请勿转载

Objective-C中的控制语句有以下几类:

? 分支语句: if-else, switch

? 循环语句: while, do-while, for

? 与程序转移有关的跳转语句: break, continue, goto

对于任何程序语言来说,有能力进行判断是一项基本特性。

if-else语句

分支语句提供了一种控制机制, 使得程序的执行可以跳过某些语句不执行, 而转去执行特定的语句。

1. 条件语句 if-else

2. 多分支语句 switch

条件语句 if-else, 基本语法形式如下, 其中“[] ” 中的部分可以省略。

if (boolean-expression)

    statement1;

[else if (boolean-expression) statement2;]

[else statement3;]

举例如下:

int number1 = 0;

int number2 = 1;

int max = 0;

if (number1 > number2) {

max = number1;

} else {

max = number2;

}

// 打印最大值max

NSLog(@"The maximum is %i ", max);

对于if语句,下面的代码很有价值:

int numerator;

int denominator;

-(double) convertToNum

{

if (denominator != 0) { //这里防止分母为0很必要

return (double) numerator /denominator;//这里double强转很有必要,否则小数位的值就丢了。

} else {

return NAN;//这里NAN表示一个数字,这个符号被定义在系统头文件math.h中。

}

}

判断整数能否整除2

remainder = number_to_test % 2;

if ( remainder == 0) {

//整除2

xxoo

}

最后对于if的条件表达式,要求用括号括起来,不要过度依赖于优先级。

尽量预测程序可能失败或产生非预期结果的情形,然后采取预防性措施应付这些情况,

是编写优秀而可靠的程序的必要部分。

其实,这个条件语句,写的好不好,主要看逻辑思维缜密不缜密。

Objective-C中有两个内置的特性,可以使Boolean变量的使用更容易。

一种特性就是特殊类型BOOL,它可以用于声明值非真即假的变量。

另外一种是预定义的值YES和NO。

非零意味着满足和零意味着不满足。

switch语句

多分支语句 switch它的语法形式如下, 其中“[]”中的部分可以省略。

switch (expression){

     case value1 : statement1;

    break;

    …………

     case valueN : statemendN;

    break;

    [default : defaultStatement; ]

   }

举例如下:

int score = 0;

scanf("%i", &score);

int scoreVal = score / 10;

char resChar = ‘ ‘;

switch (scoreVal ) {

case 9:

resChar = ‘A‘;

break;

case 8:

resChar = ‘B‘;

break;

case 7:

resChar = ‘C‘;

break;

case 6:

resChar = ‘E‘;

break;

default :

resChar = ‘F‘;

}

NSLog(@"你的分数是: %c", resChar);

使用 switch语句一定要注意的是:

表达式expression的返回值类型必须是整数或能够自动转换成整数的类型都可以,

因此可以是_Bool、 char、 short int、 枚举类型、 int、 long int、 longlong以及它们的无符号类型等。

但不能是float和double等浮点类型。

case子句中的值valueN必须是常量, 而且所有case子句中的值应是不同的。

default子句是可选的。

break语句用来在执行完一个case分支后, 使程序跳出switch语句,

即终止switch语句的执行。

在一些特殊情况下, 多个不同的case值要执行一组相同的操作, 这时可以不用 break。

时间: 2024-10-05 20:14:12

Objective-C之成魔之路【5-选择结构】的相关文章

Objective-C之成魔之路【1-序章】

重开发者的劳动成果,请勿转载 C语言首创于AT&T实验室, UNIX OS的发展促进了C语言的快速普及,UNIX OS几乎完全是由C语言编写的. Brad J.Cox在20世纪80年代早期设计了Objective-C语言,它以一种叫做SmallTalk-80的语言为基础. SmallTalk-80可以参考: http://zh.wikipedia.org/wiki/Smalltalk Objective-C在C语言的基础上加了一层,这意味着对C进行了扩展, 从而创造出一门新的程序设计语言,支持面

Objective-C之成魔之路【15-Foundation框架】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 概述 Mac OS X开发会使用 Cocoa框架, 它是一种支持应用程序提供丰富用户体验的框架, 它实际上由: Foundation和Application Kit(AppKit)和 Core Data框架组成. iOS开发, 会使用 Cocoa Touch框架, 它实际上由: Foundation.Core

Objective-C之成魔之路【11-多态性、动态类型和动态绑定】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 多态这个其它语言也有.动态类型有类似的,但不完全相同. 动态绑定别的语言也有类似,但没有objective-c用的这么多. 多态能够使来自不同类的对象定义相同名称的方法. 动态类型能使程序直到执行时才确定对象所属的类. 动态绑定则能使程序直到执行时才确定实际要调用的对象方法. 多态性是指在父类中定义的成员变量和

Objective-C之成魔之路【3-数据类型】

重开发者的劳动成果,请勿转载 数据类型. 运算符和表达式在任何的计算机语言中都比较重要的, 在面向对象的Objective-C语言中, 除了常规的基本类型, 还有对象类型等. 运算符和表达式完全遵守C语言规范. Objective-C数据类型可以分为:基本数据类型. 对象类型和id类型. 基本数据类型有: int. float. double和char类型. 对象类型就是类或协议所声明的指针类型, 例如: NSAutoreleasePool * pool, 其中NSAutoreleasePool

Objective-C之成魔之路【17-内存管理】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 内存管理关心的是清理(回收)不用的内存,以便内存能够再次利用. 提供给Objective-C程序员的基本内存管理模型有以下三种: 1)自动垃圾收集.(iOS运行环境并不支持垃圾收集,在这个平台开发程序时没有这方面的选项,只能用在Mac OS X 程序上开发.这个机制挺恶心的,用mac电脑的人知道,当内存不足的时

Objective-C之成魔之路【16-使用文件】

郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠.支持郝萌主,捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 语言的设计主要是被应用于实践, 而Objective-C应用最广的地方就是Mac OS X或iOS的Foundation框架. Foundation框架同意你利用文件系统对文件或文件夹运行基本操作,这些基本操作是由NSFileManager类提供的. 使用NSFileHandle类提供的方法,能够打开文件并对

Objective-C之成魔之路【10-继承性】

重开发者的劳动成果,请勿转载 继承性是面向对象的重要概念之一, 子类能够继承父类的某些方法和成员变量. 作用域限定符为private的成员变量是不可以被继承的. 子类还可以重写父类的方法. 当然,这一切要从根类开始: 没有父类的类,位于类层次结构的最顶层,称为根(Root)类. NSObject是层次结构的最顶端(也就是它上面没有任何类),因此称为根类. 如果使用术语,可以将类称为子类和父类.同样,也可以将类称为子类和超类. 需要注意的是,要在子类中直接使用实例变量,必须先在接口部分声明. 在实

Objective-C之成魔之路【1-Objective-C特点】

重开发者的劳动成果,请勿转载 Objective-C与其它面向对象有这明显的不同, 它有这自己鲜 明的特色, 下面我们从这个方法介绍它的特点: 兼容性. 字 符串. 类. 方法. 属性. 协议和分类. 1.兼容性 Objective-C可以说是一种面向对象的C语言, 在Objective-C的代码中可以有C和C++语句, 它可以调用 C的函数, 也可以通过C++对象访问方法. 2.字符串 Objective-C通常不使用C语言风格的字符串. 大多数情况下是使用Foundation框架的NSStr

Objective-C之成魔之路【8-訪问成员变量和属性】

郝萌主倾心贡献,尊重作者的劳动成果.请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 訪问成员变量 从面向对象的封装角度考虑问题, 要想訪问类中的成员变量, 是要通过方法訪问的, 成员变量前面要有作用域限定符(protected, public, private) , 这些存取权限修饰符我们将在后面介绍. 成员变量的訪问, 是通过读取方法(getter) 和设定方法(setter). 訪问成员