免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3458 | 回复: 6
打印 上一主题 下一主题

[solved!for 表达式顺序弄错了]菜鸟问题,逻辑混乱了。。。求 1+3+5+7+9...+99 的值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-01 10:17 |只看该作者 |倒序浏览
本帖最后由 iab1351920 于 2010-12-01 10:52 编辑
  1. #!c:/strawberry/perl/bin/perl

  2. use warnings;
  3. use strict;  

  4. my $sum = 0;

  5. for (my $i = 1; $i < 100; $i += 2) {
  6.     $sum += $i;
  7. }

  8. print "$sum\n";

复制代码
我写的代码如上,结果是正确的,但总觉得不对劲

第一次循环:
$sum += $i;  #结果 i=3、sum=3
继续循环:
$sum = 3+5+7+9...+99

不就是少加了一个1啊,为什么结果是正确的,晕了晕了

论坛徽章:
0
2 [报告]
发表于 2010-12-01 10:19 |只看该作者
回复 1# iab1351920


第一次循环的时候$i=1啊?怎么会是3呢

论坛徽章:
46
15-16赛季CBA联赛之四川
日期:2018-03-27 11:59:132015年亚洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49双鱼座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亚冠之布里斯班狮吼
日期:2015-07-13 10:44:56
3 [报告]
发表于 2010-12-01 10:22 |只看该作者
这个问题太水了
  1. Perl's C-style for loop works like the corresponding while loop; that means that this:
  2.     for ($i = 1; $i < 10; $i++) {
  3.         ...
  4.     }
  5. is the same as this:
  6.     $i = 1;
  7.     while ($i < 10) {
  8.         ...
  9.     } continue {
  10.         $i++;
  11.     }
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-12-01 10:39 |只看该作者
LZ可以把 print "$sum\n";  放到foreach 里面 输出看看。肯定是1的。

论坛徽章:
0
5 [报告]
发表于 2010-12-01 10:49 |只看该作者
本帖最后由 iab1351920 于 2010-12-01 10:54 编辑

Sorry!
看书不认真,让各位见笑了。。。
一直以为 for 语句是按“条件式一、条件式二、条件式三、之后表达式”顺序执行
google 了才知道:
1)计算表达式1的值,为循环控制变量赋初值。
2)计算表达式2的值,如果其值为‘真’则执行循环体语句,否则退出循环。执行for循环后的语句。
3)如果执行了循环体语句,则在每一次执行循环体结束时,都要计算一次表达式3的值,调整循环控制变量。尔后返回2)步重新计算表达式2的值,依此重复过程,直到表达式2的值为‘假’时,退出循环。

论坛徽章:
0
6 [报告]
发表于 2010-12-01 11:19 |只看该作者
残念· ·

论坛徽章:
0
7 [报告]
发表于 2010-12-01 12:43 |只看该作者
基础问题,先自己debug。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP