十三、本地变量

在先前的博文中  我  创建了  Add:这项措施,并且  用  这项措施  将  两个比例  相加。但是  在先前的例子当中,我相加的两个比例  分别  是  1/2  和  1/3,结果  是  5/6,这个结果  刚好  不需要  约分。如果  我  换  另外两个比例  相加,比如:1/4  和  1/2,那么  结果  就是  像下面这样:

很显然  6/8这个结果  是  可以约分成  3/4的。我们  只要找到  分子  和  分母的最大公约数,再  将  分子  和  分母  除以  它们的最大公约束,就可以  得到  约分后的结果。在objective-c当中,我们  可以创建  一项叫reduce:的措施,再  对  代表相加结果的物件  采取  这项措施,就可以  得到  约分后的结果。我们  先  看看  在程序当中  如何创建、采取  reduce:这项措施:

文件Fraction.h:

文件Fraction.m:

文件main.m:

在接口部分,也就是  文件Fraction.h当中,我  向编译器  说明了  reduce:这项措施,就像  这样:

减号  代表  这项措施  只能  针对物件  实施。(void)  表明  这项措施  不传回  任何数值。reduce  表示  这项措施的名称。

在实施部分,也就是  文件Fraction.m当中,我  向编译器  说明了  reduce:这项措施  具体  是如何  实施的。其中  我  创建了  三个整数类型的变量:

其中  变量u  代表  被除数,变量v  代表  除数,而  变量remainder  代表  余数。首先  被除数  和  除数的值  都被设定  为  分子  和  分母。

接着  进入  一个while()循环,循环中的语句  会被  反复  执行。

这行语句  将  被除数u  和  除数v  相除的余数  存储  在变量remainder当中。

这两行语句  将  上一步的除数  当作  下一步的被除数,将  上一步的余数  当作  下一步的除数。接着  重新  执行

这行语句。

循环体中的语句  会执行  到  除数,也就是  变量v的值,等于0为止,因为  循环条件

规定  执行循环体的条件  是  除数,也就是  变量v的值,不能等于  0。循环  停止执行前  最后一步的被除数,也就是  变量u的值,就是  我们要求的最大公约数。

最后的

两行语句  将  分子  和  分母  分别  除以  它们的最大公约数,也就是  变量u的值。

 

在主程序main()当中

这行语句  对  代表第一个比例的物件fractionOne  采取了  Add:这项措施,并且  附带了  代表第二个比例的物件fractionTwo  作为参数。于是  第二个比例  就被加  进了  第一个比例当中,第一个比例  就成为了  两个比例相加的和。

接着的

这行语句  对  物件fractionOne  采取了  reduce:这项措施,对  其  进行约分。

 

运行  这个程序,可以得到  更加满意的结果:

在reduce这项措施当中  我  创建了  三个变量u、v  和  temp。这三个变量  只有  在reduce:这项措施  开始执行时  才出现,而且  reduce:这项措施  执行结束后,这三个变量  也会消失。除此之外,你  只能  在reduce:这项措施当中  对  这三个变量  进行读写。于是  u、v  和  temp这三个变量  就叫做  本地变量。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值