LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1216|回复: 10

for?...foreach?

[复制链接]
发表于 2004-2-14 12:47:00 | 显示全部楼层 |阅读模式
看书上说,用for循环是个坏习惯,
在某些场合下,'for' 循环可能有用。但是强烈建议记下它的出现情况,并找出不使用 'foreach' 的充分理由。对于初学者和中级 Perl 程序员来说,使用 'for' 结构弊大于利。
请帮忙解释解释~:thank
发表于 2004-2-14 20:28:07 | 显示全部楼层
尽信书不如无书。

个人比较习惯用 for while if 那个顺手。用着方便就用那个。
 楼主| 发表于 2004-2-14 22:40:01 | 显示全部楼层
最初由 icps 发表
尽信书不如无书。

个人比较习惯用 for while if 那个顺手。用着方便就用那个。

hehe~~,既然那么写我想必然有些道理呀~,好像比较新的perl版本的用的多是foreach,~纳闷ing~~~ :ask
btw:无书怎么学习?
发表于 2004-2-14 23:20:47 | 显示全部楼层
不太了解最新的。我用的5.8。工具书还是5.0的。哈~
 楼主| 发表于 2004-2-14 23:54:42 | 显示全部楼层
<<perl技术内幕>>这本书里说对表做循环时,应该用foreach而不是for,因为初学,所以~~,也许再深入深入就找着感觉了吧~~ 呵呵~~:thank
发表于 2004-2-15 00:08:29 | 显示全部楼层
其实 for foreach 使用的范围不是太一样的。比如

for($i=0;$i<100;$i++){
   print $i;
  }
foreach(1..100){
   print;
  }

上面的代码都是打印 1-100 但那个更容易维护呢?
一般来说。在处理 数组,散列,或一个表达式的时候用 foreach 比较简单。虽然foreach效率可能高一点。但不太容易看明白。若干时间以后可能就忘记了。当然如果加了足够的注释。就另说了。所以具体用那个。要看情况而定。不能就说那个好。那个不好。
发表于 2004-2-15 00:16:34 | 显示全部楼层
顺便出个简单的题目。

  1. #!/usr/bin/perl
  2.   @array=(3..5);
  3.   foreach(1,2,@array,6,7){
  4.   print;
  5.   }
复制代码


ps:加了ubb code :p
 楼主| 发表于 2004-2-15 00:45:37 | 显示全部楼层
  1. #!perl -w
  2. @str=(1,2,3,4,5);
  3. #use for
  4. for ($i=0;$i<=$#str;$i++) {
  5.         print $str[$i];
  6. }
  7. #use foreach
  8. foreach (@str) {print;}
复制代码
由此看出还是foreach简炼~
发表于 2004-2-15 00:53:11 | 显示全部楼层
是呀。但是这样的代码也代表着不容易维护。
所以必须作出取舍。
 楼主| 发表于 2004-2-15 01:01:40 | 显示全部楼层
谢谢~~以后请多多指教~~:thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表