[Objective-C语言教程]循环语句(9)

当需要多次执行同一代码块时,可以使用循环来解决。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。 编程语言提供各种控制结构,允许更复杂的执行路径。循环语句可用于多次执行语句或语句组,以下是大多数编程语言中循环语句的一般形式 -

Objective-C编程语言提供以下类型的循环来处理循环需求。单击以下相应链接来查看其详细信息。

编号 循环类型 描述
1 while循环 在给定条件为真时重复语句或语句组,它在执行循环体之前测试条件。
2 for循环 多次执行一系列语句,并缩写管理循环变量的代码。
3 do…while循环 while循环语句一样,但它在循环体的末尾测试条件。
4 嵌套循环 在任何其他循环内使用一个或多个循环,whilefordo...while循环。

1. 循环控制语句

循环控制语句将执行从其正常序列更改。 当执行离开作用域时,将销毁在该作用域中创建的所有自动对象。

Objective-C支持以下控制语句,单击以下链接以查看其详细信息。

编号 控制语句 描述
1 break语句 用来终止循环或switch语句,并在循环或切换后立即将执行转移到语句。
2 continue语句 导致循环跳过其主体的其余部分,并在重复之前立即重新测试其状态。

2. 无限循环

如果条件永远不会变为假,则循环变为无限循环。for循环传统上用于此目的。 由于不需要构成for循环的三个表达式,因此可以通过将条件表达式留空来创建无限循环。

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    for( ; ; ) {
 6       NSLog(@"This loop will run forever.\n");
 7    }
 8
 9    return 0;
10 }

当条件表达式不存在时,程序假定条件为真。可选有一个初始化和增量表达式,但Objective-C程序员更常使用for(;;)构造来表示无限循环。

3. while循环

只要给定条件为真,Objective-C编程语言中的while循环语句就会重复执行目标语句。

语法

Objective-C编程语言中while循环的语法是 -

1 while(condition) {
2    statement(s);
3 }

这里,statement(s);可以是单个语句或语句块。条件(condition)可以是任何表达式,true是任何非零值。当条件为true时,循环迭代。

当条件变为false时,程序控制将立即传递到循环之后的行。

while循环语句的流程图 -

这里,while循环需要注意的是循环可能永远不会运行。当测试条件并且结果为假时,将跳过循环体并且将执行while循环之后的第一个语句。

示例代码

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* 局部变量定义 */
 6    int a = 10;
 7
 8    /* while循环执行 */
 9    while( a < 20 ) {
10       NSLog(@"value of a: %d\n", a);
11       a++;
12    }
13    return 0;
14 }

编译并执行上述代码时,将会产生以下结果 -

 1 2018-11-14 06:19:27.846 main[154713] value of a: 10
 2 2018-11-14 06:19:27.848 main[154713] value of a: 11
 3 2018-11-14 06:19:27.848 main[154713] value of a: 12
 4 2018-11-14 06:19:27.848 main[154713] value of a: 13
 5 2018-11-14 06:19:27.848 main[154713] value of a: 14
 6 2018-11-14 06:19:27.848 main[154713] value of a: 15
 7 2018-11-14 06:19:27.848 main[154713] value of a: 16
 8 2018-11-14 06:19:27.848 main[154713] value of a: 17
 9 2018-11-14 06:19:27.848 main[154713] value of a: 18
10 2018-11-14 06:19:27.848 main[154713] value of a: 19

4. for循环

for循环是一种重复控制结构,允许有效地编写需要执行特定次数的循环。

语法

Objective-C编程语言中for循环的语法是 -

1 for( init; condition; increment ) {
2    statement(s);
3 }

下面是for循环中的控制流程 -

  • init步骤首先执行,只执行一次。 此步骤允许声明和初始化任何循环控制变量。这里只有分号是必需的,在此处声明变量是可选的。
  • 接下来,评估条件。 如果为true,则执行循环体。 如果为false,则循环体不执行,控制流跳转到for循环后的下一个语句。
  • 在执行for循环体后,控制流会跳回到increment语句。 此语句可更新任何循环控制变量。此语句就可以留空,只要在条件之后写上分号。
  • 现在再次评估该条件。如果为真,则循环执行并且过程自身重复(循环体,然后递增步骤,然后再次调整)。 当条件变为false后,for循环终止。

for循环执行流程图

示例代码

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* for循环执行 */
 6    int a;
 7    for( a = 10; a < 20; a = a + 1 ) {
 8       NSLog(@"value of a: %d\n", a);
 9    }
10    return 0;
11 }

执行上面示例代码,得到以下结果:

 1 2018-11-14 06:36:11.408 main[156211] value of a: 10
 2 2018-11-14 06:36:11.423 main[156211] value of a: 11
 3 2018-11-14 06:36:11.423 main[156211] value of a: 12
 4 2018-11-14 06:36:11.423 main[156211] value of a: 13
 5 2018-11-14 06:36:11.423 main[156211] value of a: 14
 6 2018-11-14 06:36:11.423 main[156211] value of a: 15
 7 2018-11-14 06:36:11.423 main[156211] value of a: 16
 8 2018-11-14 06:36:11.423 main[156211] value of a: 17
 9 2018-11-14 06:36:11.423 main[156211] value of a: 18
10 2018-11-14 06:36:11.423 main[156211] value of a: 19

5. do…while循环

for循环和while循环在顶部测试循环条件不同,Objective-C编程语言中的do...while循环检查循环底部的条件。

do...while循环类似于while循环,但是do...while循环保证至少执行一次。

语法

Objective-C编程语言中do...while循环的语法是 -

1 do {
2    statement(s);
3 } while( condition );

请注意,条件表达式是在循环的末尾,因此循环中的语句在测试条件之前执行一次。

如果条件为真,则控制流跳回来执行,循环中的语句再次执行。重复此过程直到给定条件变为假。

do…while循环流程图

do…while示例代码

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* 局部变量定义 */
 6    int a = 10;
 7
 8    /* do...while循环执行 */
 9    do {
10       NSLog(@"value of a: %d\n", a);
11       a = a + 1;
12    } while( a < 20 );
13    return 0;
14 }

执行上面示例代码,得到以下结果:

 1 2018-11-14 06:44:13.298 main[44840] value of a: 10
 2 2018-11-14 06:44:13.299 main[44840] value of a: 11
 3 2018-11-14 06:44:13.299 main[44840] value of a: 12
 4 2018-11-14 06:44:13.299 main[44840] value of a: 13
 5 2018-11-14 06:44:13.299 main[44840] value of a: 14
 6 2018-11-14 06:44:13.299 main[44840] value of a: 15
 7 2018-11-14 06:44:13.299 main[44840] value of a: 16
 8 2018-11-14 06:44:13.299 main[44840] value of a: 17
 9 2018-11-14 06:44:13.299 main[44840] value of a: 18
10 2018-11-14 06:44:13.299 main[44840] value of a: 19

6. 嵌套循环

Objective-C编程语言允许在另一个循环中使用一个循环。以下部分显示了几个例子来说明这个概念。

语法

Objective-C语言中嵌套for循环语句的语法如下 -

1 for ( init; condition; increment ) {
2    for ( init; condition; increment ) {
3       statement(s);
4    }
5    statement(s);
6 }

Objective-C编程语言中嵌套while循环语句的语法如下 -

1 while(condition) {
2    while(condition) {
3       statement(s);
4    }
5    statement(s);
6 }

Objective-C编程语言中嵌套do...while循环语句的语法如下 -

1 do {
2    statement(s);
3    do {
4       statement(s);
5    } while( condition );
6
7 } while( condition );

循环嵌套可以将任何类型的循环放在任何其他类型的循环中。 例如,for循环可以放在while循环内,反之亦然。

例子
以下程序使用嵌套for循环来从2100中查找素数 -

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* 局部变量定义 */
 6    int i, j;
 7
 8    for(i=2; i<100; i++) {
 9       for(j=2; j <= (i/j); j++)
10         if(!(i%j)) break;        // if factor found, not prime
11       if(j > (i/j)) NSLog(@"%d is prime\n", i);
12    }
13
14    return 0;
15 }

执行上面示例代码,得到以下结果:

 1 2018-11-14 07:14:35.503 main[60729] 2 is prime
 2 2018-11-14 07:14:35.505 main[60729] 3 is prime
 3 2018-11-14 07:14:35.505 main[60729] 5 is prime
 4 2018-11-14 07:14:35.505 main[60729] 7 is prime
 5 2018-11-14 07:14:35.505 main[60729] 11 is prime
 6 2018-11-14 07:14:35.506 main[60729] 13 is prime
 7 2018-11-14 07:14:35.506 main[60729] 17 is prime
 8 2018-11-14 07:14:35.506 main[60729] 19 is prime
 9 2018-11-14 07:14:35.506 main[60729] 23 is prime
10 2018-11-14 07:14:35.506 main[60729] 29 is prime
11 2018-11-14 07:14:35.506 main[60729] 31 is prime
12 2018-11-14 07:14:35.506 main[60729] 37 is prime
13 2018-11-14 07:14:35.506 main[60729] 41 is prime
14 2018-11-14 07:14:35.506 main[60729] 43 is prime
15 2018-11-14 07:14:35.506 main[60729] 47 is prime
16 2018-11-14 07:14:35.506 main[60729] 53 is prime
17 2018-11-14 07:14:35.506 main[60729] 59 is prime
18 2018-11-14 07:14:35.506 main[60729] 61 is prime
19 2018-11-14 07:14:35.506 main[60729] 67 is prime
20 2018-11-14 07:14:35.506 main[60729] 71 is prime
21 2018-11-14 07:14:35.506 main[60729] 73 is prime
22 2018-11-14 07:14:35.506 main[60729] 79 is prime
23 2018-11-14 07:14:35.506 main[60729] 83 is prime
24 2018-11-14 07:14:35.506 main[60729] 89 is prime
25 2018-11-14 07:14:35.506 main[60729] 97 is prime

7. break语句

Objective-C编程语言中的break语句有以下两种用法 -

  • 当在循环内遇到break语句时,循环立即终止,程序控制在循环后的下一个语句处重新开始。
  • 它可以用于在switch语句中终止一个case(在下一章中介绍)。

如果使用嵌套循环(即另一个循环中的一个循环),break语句将停止执行最内层循环并开始执行块之后的下一行代码。

语法

Objective-C中break语句的语法如下 -

break;

流程图

示例代码

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* 局部变量定义 */
 6    int a = 10;
 7
 8    /* while循环执行 */
 9    while( a < 20 ) {
10       NSLog(@"value of a: %d\n", a);
11       a++;
12
13       if( a > 15) {
14          /* 使用break语句终止循环 */
15          break;
16       }
17    }
18
19    return 0;
20 }

执行上面示例代码,得到以下结果:

1 2018-11-14 07:32:47.365 main[72348] value of a: 10
2 2018-11-14 07:32:47.366 main[72348] value of a: 11
3 2018-11-14 07:32:47.367 main[72348] value of a: 12
4 2018-11-14 07:32:47.367 main[72348] value of a: 13
5 2018-11-14 07:32:47.367 main[72348] value of a: 14
6 2018-11-14 07:32:47.367 main[72348] value of a: 15

8. continue语句

作者: Maxsu Java技术QQ群:227270512 / Linux QQ群:479429477

Objective-C编程语言中的continue语句与break语句有点类似。 但是,不是强制终止,而是继续强制执行循环的下一次迭代,跳过其间的任何代码。

对于for循环,continue语句会导致条件测试并增加循环的部分来执行。 对于whiledo...while循环,continue语句会导致程序控制传递给条件测试。

语法

Objective-C中continue语句的语法如下 -

continue;

流程图

示例代码

 1 #import <Foundation/Foundation.h>
 2
 3 int main () {
 4
 5    /* 局部变量定义 */
 6    int a = 10;
 7
 8    /* do...while循环执行 */
 9    do {
10       if( a == 15) {
11          /* 跳过迭代 */
12          a = a + 1;
13          continue;
14       }
15       NSLog(@"value of a: %d\n", a);
16       a++;
17    } while( a < 20 );
18    return 0;
19 }

执行上面示例代码,得到以下结果:

1 2018-11-14 07:39:49.946 main[86123] value of a: 10
2 2018-11-14 07:39:49.948 main[86123] value of a: 11
3 2018-11-14 07:39:49.948 main[86123] value of a: 12
4 2018-11-14 07:39:49.948 main[86123] value of a: 13
5 2018-11-14 07:39:49.948 main[86123] value of a: 14
6 2018-11-14 07:39:49.948 main[86123] value of a: 16
7 2018-11-14 07:39:49.948 main[86123] value of a: 17
8 2018-11-14 07:39:49.948 main[86123] value of a: 18
9 2018-11-14 07:39:49.948 main[86123] value of a: 19

原文地址:https://www.cnblogs.com/strengthen/p/10563163.html

时间: 2024-10-14 06:26:37

[Objective-C语言教程]循环语句(9)的相关文章

【下载分】C语言for循环语句PK自我活动

想了解自己C语言for语句的掌握程度吗?敢和自己PK较量一番吗?參加"C语言for循环语句PK自我活动",仅仅要成绩70分以上.就可赢得CSDN下载分. 12道题目题库动态读取,每人5次PK自我的机会.单选和多选题两种题型.及格easy高分难. 活动时间: 2014.08.18-2014.09.18 奖励方式: 凡每次答卷得分在: - 70-79分者赠送2个下载分. - 80-89分者赠送3个下载分. - 90-99分者赠送4个下载分: - 100分者获得5个下载分: 如今就去測试 -

【Go语言】【9】GO语言的循环语句

一.循环语句 循环语句即for语句,您可能说:"不对,它不仅仅是for语句,还有while或者do-while",真的很遗憾,GO语言真的只有for,它认为提供一种就可以了,提供多了怕给程序员带来麻烦 :) 下面我们使用for循环计算1+2+3+4+--+100的和,和其它语言一样,我们使用循环100次的办法: 定义一个变量,让它从1开始循环100次,每次都判断它是否小于101,若是变量就加1 代码如下: // 声明变量sum并初始化为0 sum := 0 // 定义变量i,循环100

黑马程序员 C语言:循环语句

什么是循环? 当条件满足的时候,重复执行某一段代码 条件不满足的时候,跳出循环 --->执行循环的后面的语句 循环的三个要素: 循环控制条件:循环结束的条件 循环体:执行循环做的事情 能够保证让循环正常结束的(自增.自减.真.假) C语言中的三种循环 while循环(当条件满足的时候,执行循环体) 使用:while(条件表达式) ; while(条件表达式) sum+=1; while(条件表达式){ 循环体 } 注意: while(1)  死循环 while(条件表达式) int num=1;

C语言_循环语句

1.switch case语句 switch(表达式) { case 常量1: 语句1: break: case 常量2: 语句2: break: case 常量3: 语句3: break: ……………. case 常量n: 语句n: break: default: } [注] 1.case 分支可以有无数个: 2.default分支可有可无: 3.break必须写,用来跳出switch语句: 4.case 后面跟的是常量: 2.while循环 while(表达式) { 语句: } [执行过程]

C语言for循环

语言作为程序设计的入门语言,对于计算机专业学生的重要意义不言而喻.而循环语句是C语言学习中的一个重点与难点.本文根据学习经验,结合全国计算机等级考试三级网络技术机试真题,浅谈C语言循环语句的学习. 循环结构是结构化程序设计的基本结构之一.它和顺序结构.选择结构共同作为各种复杂程序的基本构造单元.在程序设计中许多问题需要用到循环语句,如处理 学校学生成绩:求若干个数的和:求一个数的阶乘等等.循环语句是实现程序设计中许多有规律.需要多次重复执行某些操作的最为有效的方法.循环结构是程序设 计中的一个重

单片机c语言教程:C51循环语句

单片机c语言教程第十三课 C51循环语句 循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的(当然能使用定时器来做,这里就不讨论),如果是写 1000 条空语 句那是多么麻烦的事情,再者就是要占用很多的存储空间.我们能知道这 1000 条空语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序 结构清晰明了,而且

Lua语言教程1 ——【变量输出,方法输出,if语句和for循环语句!】

变量输出: num="Hello Lua" print (num) 方法输出: if语句: for循环语句:

13_Shell语言———语言控制结构之for循环语句

一.语言控制结构概述 在前文中(4_Shell语言---脚本概述)介绍过面向过程的编译语言,其控制结构主要有以下三种: a) 顺序执行:默认法则:一句一句逐行执行: b) 选择执行:进行条件判断,只有部分是符合条件的,故只执行符合条件的部分: 条件判断通常采用布尔测试:即判断条件为真或为假,在bash中: 0: 为真 1~255: 为假(即非0为假,这点和很多编程语言相反) c) 循环执行:将同一段代码反复执行N次,若N为无穷大,则会出现死循环的现象,故循环必须有退出条件,这里的N就是退出条件.

ASP教程:ASP脚本循环语句

在本文上两篇中,我们学习了脚本语言 VBScript 的变量.函数.过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结. 如果有人告诉你学习 ASP 不需要任何编程知识,那么他错了;如果我告诉你学习 ASP 必须掌握一门编程语言,那么我错了.ASP 动态服务器页面环境的特点就在于它是通过一种或几种脚本语言而写成的,脚本语言可以看作是编程语言的简化版,它易于学习和掌握,这给广大动态网站的设计者们提供了相当大的便利.可以这么说 : 脚本语言运用