[solved!for 表达式顺序弄错了]菜鸟问题,逻辑混乱了。。。求 1+3+5+7+9...+99 的值
时间:2010-12-01
来源:互联网
本帖最后由 iab1351920 于 2010-12-01 10:52 编辑
复制代码
我写的代码如上,结果是正确的,但总觉得不对劲
第一次循环:
$sum += $i; #结果 i=3、sum=3
继续循环:
$sum = 3+5+7+9...+99
不就是少加了一个1啊,为什么结果是正确的,晕了晕了
- #!c:/strawberry/perl/bin/perl
-
- use warnings;
- use strict;
-
- my $sum = 0;
-
- for (my $i = 1; $i < 100; $i += 2) {
- $sum += $i;
- }
-
- print "$sum\n";
第一次循环:
$sum += $i; #结果 i=3、sum=3
继续循环:
$sum = 3+5+7+9...+99
不就是少加了一个1啊,为什么结果是正确的,晕了晕了
作者: iab1351920 发布时间: 2010-12-01
回复 iab1351920
第一次循环的时候$i=1啊?怎么会是3呢
第一次循环的时候$i=1啊?怎么会是3呢
作者: orz_wohencai 发布时间: 2010-12-01
这个问题太水了
复制代码

- Perl's C-style for loop works like the corresponding while loop; that means that this:
- for ($i = 1; $i < 10; $i++) {
- ...
- }
- is the same as this:
- $i = 1;
- while ($i < 10) {
- ...
- } continue {
- $i++;
- }
作者: zhlong8 发布时间: 2010-12-01
LZ可以把 print "$sum\n"; 放到foreach 里面 输出看看。肯定是1的。
作者: leigh111 发布时间: 2010-12-01
本帖最后由 iab1351920 于 2010-12-01 10:54 编辑
Sorry!
看书不认真,让各位见笑了。。。
一直以为 for 语句是按“条件式一、条件式二、条件式三、之后表达式”顺序执行
google 了才知道:
Sorry!
看书不认真,让各位见笑了。。。
一直以为 for 语句是按“条件式一、条件式二、条件式三、之后表达式”顺序执行
google 了才知道:
QUOTE:
1)计算表达式1的值,为循环控制变量赋初值。
2)计算表达式2的值,如果其值为‘真’则执行循环体语句,否则退出循环。执行for循环后的语句。
3)如果执行了循环体语句,则在每一次执行循环体结束时,都要计算一次表达式3的值,调整循环控制变量。尔后返回2)步重新计算表达式2的值,依此重复过程,直到表达式2的值为‘假’时,退出循环。
2)计算表达式2的值,如果其值为‘真’则执行循环体语句,否则退出循环。执行for循环后的语句。
3)如果执行了循环体语句,则在每一次执行循环体结束时,都要计算一次表达式3的值,调整循环控制变量。尔后返回2)步重新计算表达式2的值,依此重复过程,直到表达式2的值为‘假’时,退出循环。
作者: iab1351920 发布时间: 2010-12-01
残念· ·
作者: wfnh 发布时间: 2010-12-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28