重开发者的劳动成果,请勿转载
计算机的基本属性之一就是它能够重复执行一组语句。
循环语句的作用是反复执行一段代码, 直到满足终止循环的条件为止。
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