英语原文共 551 页,剩余内容已隐藏,支付完成后下载完整资料
毕业设计英文翻译(译文)
该程序循环实际上包括其余所有的程序语句,如括号所示。如果有以下概念,也许能更容易地理解该程序的工作方式:
For 5 times
{
Get the number from the user.
Calculate the requested triangular number.
Display the results.
}
前面循环的部分指的是 Calculate the requested triangular number ,它实际上包括:将变量 triangularNumber 的值设为0,以及计算三角数的for循环。这样,这个for语句实际上包含另一个for语句。这在Objective-C中是相当合法的,而且可以继续嵌套,甚至可以嵌套任何想要的层。
处理比较复杂的程序结构(如嵌套的for语句)时,适当地使用缩进显得尤为重要。扫视一下,就能轻易确定每个for语句中包含哪些语句。
for循环的变体
在结束for循环的讨论之前,先探讨一下生成这种循环时允许的一些语法变化。编写for
循环时,你可能发现在开始循环之前需要初始化多个变量,或者可能每次循环都要计算多个表达
式。for循环的任何位置都可包含多个表达式,只要使用逗号分隔这些表达式即可。例如,使用
以下形式开始的for循环:
for ( i = 0, j = 0; i lt; 10; i )
...
在循环开始前,将r的值设为。,将j的值设为。。两个表达式r=0和j=0通过逗号隔开,而且两者都是循环的init expression部分。另一个for循环的例子为:
for ( i = 0, j = 100; i lt; 10; i, j -= 10 )
...
for循环开始设置了两个索引变量:1和j,在循环开始之前,它们分别被初始化为0和100。每次执行完循环体之后,i的值加1, j的值减l0。
就像可能希望for循环的特定字段包含多个表达式一样,可能还需要省略语句中的一个或多个字段。通过省略指定的字段并使用分号标记其位置,可简单地实现这一点。省略for语句中某个字段的最常见情形发生在无须计算初始表达式的值时。在这种情况下,init_ expression字段可简单地保留空白,只要仍然包括分号即可,语句如下:
84 第5章 循环结构
for ( ; j != 100; j )
...
如果在进入循环之前己经将j设置了初始值,则可采用这条语句。
省略looping condition字段的for循环实际上是无限循环,就是理论上执行无限次的循环。
只要有其他方式退出循环(例如,执行return、 break或goto语句,相关内容将在本书后面讨论),
就可以使用这一循环。
在for循环中,还可定义一个变量作为初始表达式的一部分。使用以前定义变量的传统方式可实
现。例如,下面的语句可用于设置for循环,它定义了整型变量counter,并将其初始化为1,语句
如下:
for ( int counter = 1; counter lt;= 5; counter )
变量counter只在for循环的整个执行过程中是已知的(它被称为局部变量),并且不能在循环外部访问。
最后一种for循环的变体可以在对象集合上执行所谓的快速枚举。第 15 章“数字、字符串和集合”会详细介绍此内容。
while语句
while语句进一步扩展了Objective-C语言中的循环功能指令系统。这个经常使用的结构的语法如下:
while ( expression )
program statement
圆括号中指定的表达式(expression)将被求值。如果表达式求值的结果为true,则执行随后的程序语句(program statement。执行完这条语句(或位于花括号中的一组语句)后,将再次对表达式求值,如果求值的结果为true,将再次执行程序语句。继续这个过程,直到表达式的最终求值结果是false时,循环将终止。然后,程序执行program statement之后的语句。
作为它的用法示例,代码清单5-6建立了一个while循环,它只是从1数到5。
while 语句 |
85 |
代码清单5-6
//此程序引入了while语句
#import lt;Foundation/Foundation.hgt;
int main (int argc, char * argv[])
{
@autoreleasepool { int count = 1;
while ( count lt;= 5 ) { NSLog (@'%i', count); count;
}
}
return 0;
}
代码清单5-6输出
1
2
3
4
5
程序最初将count的值设为1,然后开始执行while循环。因为count的值小于或等于5,所以将执行它后面的语句。花括号将NSLog语句和对count执行加1操作的语句定义为while循环。从程序的输出可以看出,这个程序执行了5次,直到count的值是5为止。
从以上程序中你可能认识到,使用for语句同样可以方便地完成该任务。事实上,for语句都可转换成等价的while语句,反之亦然。例如,下面这个普通的for语句:
for ( init_expression; loop_condition; loop_expression ) program statement
可用while语句的形式等价地表示为:
init_expression;
while ( loop_condition )
{
program statement loop_expression;
}
86 第5章 循环结构
熟悉了while语句的用法之后,对于何时用while语句、何时用for语句,你会有更好的认识。一般来说,在执行预定次数的循环时,首选for语句。同样,如果初始表达式、循环表达式和循环条件都涉及同一变量,那么for语句很可能是合适的选择。
下一个程序提供了使用while语句的另一个例子。这个程序计算两个整数值的最大公约数 (greatest common divisor)。两个整数的最大公约数(此后将其缩写为gcd )是可整除这两个整数的最大整数值。例如,10和15的gcd是5,因为5是可整除10和15的最大整数。
可使用一个过程(或算法)来获得任意两个整数的gcd,它基于欧几里得在公元前300年左右首次研究出的一个方法,其说明如下。
问题:找出两个非负整数u和v的最大公约数。
步骤I:若v等于0,则结束,即gcd等于u。
步骤2:计算temp=u%v, u=v, v=temp,并回到步骤1。
不要过分关注上述算法的运行细节,相信它就可以了。此处我们更关心开发一个程序来找出最大公约数,而不是分析这一算法的实现方式。
使用算法描述找出最大公约数这一问题的解决方案之后,开发一个计算机程序成了一项十分简单的工作。算法步骤的分析揭示:只要v的值不等于0,就会重复执行步骤2。由于有了这一发现,该算法在Objective-C中利用while语句来实现是很自然的。
代码清单5-7用于找出用户输入的两个整数的gcd。
代码清单5-7
// 找到两个非负整数的最大公约数
#import lt;Foundation/Foundation.hgt;
int main (int argc, char * argv[])
{
@autoreleasepool { unsigned int u, v, temp;
NSLog (@'Please type in two nonnegative integers.'); scanf ('%u%u', amp;u, amp;v);
while 语句 |
87 |
while ( v != 0 ) { temp = u % v; u = v;
v = temp;
}
NSLog (@'Their greatest common divisor is %u', u);
}
return 0;
}
代码清单5-7输出
Please type in two nonnegative integers.
150 35
Their greatest common divisor is 5
代码清单5-7A 输出(重新执行)
Please type in two nonnegative integers.
1026 540
Their greatest common divisor is 54
输入两个整型值并分别存储到变量u和v之后(使用%u格式字符读入一个无符号的整型值),程
序进入一个while循环来计算它们的最大公约数。退出while循环之后,u的值会显示出来,即代表
v和“的原始值的gcd,并且显示一条适当的消息。
第7章“类”中,返回处理分数时,将利用这个算法来找出最大公约数。利用这个算法将分数化
简到最简单的形式。
对于下一个说明while语句的程序,设想的任务是翻转从终端输入的整数位。例如,如果用户输
入数字1234,该程序将把这个数字的位颠倒过来,并显示结果4321。
注意
NSLog调用会导致每个数字出现在输出的单独行上。熟悉printf函数的C程序员可以使用该函数,而不是让数字连续地显示:
88 第5章 循环结构
要编写这样的程序,首先必须提出一个算法来实现所陈述的工作。最常见的情况是,分析自己解决问题的方法可以产生一个算法。对于颠倒一个数字的各位的这项工作,解决方案可简单地陈述为“从右到左依次读取数字的位。”通过开发一个过程,从数字最右边的位开始依次分离或取出该数字的每个位,计算机程序就可以依次读取数字的各个位,提取的位随后可以作为己颠倒数字的下一位显示在终端上。
通过将整数除以10之后取其余数,可提取整数最右边的数字。例如,1234% 10会得出值4,就是1234最右边的数字,也是颠倒后数字的第一位(记住,可以使用模运算符得到一个整数除以另一个整数所得的余数)。先将数字除以10(回忆一下整数除法的工作方式),再重复这个过程,就可以获得下一个数字。因此,1234/10的结果为123,而123的结果为3,它是颠倒后数字的第二个数。
这个过程可一直继续执行,直到计算出最后一个数字为止。一般情况下,如果最后一个整数除以10的结果为0,那么这个数字就是最后一个要提取的数字。
代码清单5-8提示用户输入一个数值,然后从右向左依次显示该数值各个位的数字。
代码清单5-8
// Program to reverse the digits o
全文共14327字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[154893],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。