Objective-C之成魔之路【6-循环结构】

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

计算机的基本属性之一就是它能够重复执行一组语句。

循环语句的作用是反复执行一段代码, 直到满足终止循环的条件为止。

Objective-C语言中提供的循环语句有:

? while语句

? do-while语句

? for语句

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

   [initialization]

   while (termination){

     body;

   [iteration;]

   }

举例如下:

水仙花数是指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153)

下面代码是计算1000以内的水仙花数。

int i = 100;

int r, s, t;

r = 0;s = 0;t = 0;

while (i < 1000) {

r = i / 100;

s = (i - r * 100) / 10;

t = i - r * 100 - s * 10;

if (i == r * r * r + s * s * s + t * t * t) {

NSLog(@" %i " , i );

}

i = i + 1;

}

三位的水仙花数共有4个,分别为:153、370、371、407。

do-while语句, 它的语法形式如下, 其中“[] ” 中的部分可以省略
[initialization]   do {     body;   [iteration;]} while (termination);

计算1000以内的水仙花数
int i  = 100;int r, s, t;r = 0;s = 0;t = 0;do {r = i  / 100;s = (i  - r * 100) / 10;t = i  - r * 100 - s * 10;if (i  == r * r * r + s * s * s + t * t * t) {NSLog(@" %i  " , i );}i  = i  + 1;} while (i  < 1000);

for语句, 语法形式如下:for (initialization; termination; iteration){     body;}
举例如下:
下面代码是计算0~10平方、 立方数并输出:  int i  = 10;int r, s;r = 0;s = 0;for (int j = 0; j <= i ; j++) {r = j * j;s = j * j * j;NSLog(@"整数为: %i  对应的平方和%i :对应的立方和:%i ", j, i , s);}
for语句小结

for语句将按以下步骤执行:

1.先求初始表达式的值。

2.求循环条件的值。

3.执行组成循环体的程序语句。

4.求循环表达式的值。

5.返回到2执行。
在for循环语句的“() ” 内部一般有3条语句, 
initialization初始化语句, termination终止条件语句, iteration迭代语句, 
其中这3条语句都是可以省略的。 
例如把j 的初始化放在循环体的外面, 代码如下: int j = 0;for (; j <= i ; j++) {r = j * j;s = j * j * j;NSLog(@"整数为: %i  对应的平方和%i :对应的立方和:%i ", j, i , s);}

跳转语句
与程序转移有关的跳转有break, continue, goto语句, 
break和continue都主要与循环有, 
goto语句在C中就有, 它是无条件跳转可以完全替代break和continue, 一般要慎用 。

break语句break语句在switch中使用过, 用来终止switch语句的执行。 break语句还可以用于循环体中, 终止当前的循环, 并紧跟该循环块的第一条语句处执行。 

举例如下: break语句for (int i = 0; i < 10; i++) {if (i == 3)break;NSLog(@ " i =%i", i);}NSLog(@" Game Over!");i  =0i  =1i  =2Game Over!也就是说如果在一组嵌套循环中执行break语句,仅会推出执行break语句的最内层循环。
continue语句
continue语句用来结束本次循环, 跳过循环体中下面尚未执行的语句, 
接着进行终止条件的判断, 以决定是否继续循环。 
对于for语句, 在进行终止条件的判断前, 还要先执行迭代语句。 

举例如下: for (int i  = 0; i  < 100; i ++) {if (i  % 10 == 0)continue;NSLog(@"%i ", i );}…18192122…
goto语句
goto语句是无条件跳转, 可以完全替代break和continue。如果是嵌套循环, 可以使用 goto语句指定标签, 来改变程序的流程。

举例如下:  for (int j = 0; j < 10; j++) {for (int i = 0; i < 10; i++) {if (i == 3)goto label;NSLog(@ " i =%i", i);}}label:NSLog(@" Game Over!");
在内循环中使用 break和continue都只能跳出内循环, 
goto语句没有这个限制, 
label: 是标签定义, goto语句后面要跟有标签。
时间: 2024-10-24 15:24:06

Objective-C之成魔之路【6-循环结构】的相关文章

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之成魔之路【5-选择结构】

重开发者的劳动成果,请勿转载 Objective-C中的控制语句有以下几类: ? 分支语句: if-else, switch ? 循环语句: while, do-while, for ? 与程序转移有关的跳转语句: break, continue, goto 对于任何程序语言来说,有能力进行判断是一项基本特性. if-else语句 分支语句提供了一种控制机制, 使得程序的执行可以跳过某些语句不执行, 而转去执行特定的语句. 1. 条件语句 if-else 2. 多分支语句 switch 条件语句

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). 訪问成员