- 论坛徽章:
- 31
|
下面代码修改了上个贴子说的三个问题,在第二个each中我发现break和next都能退出。
这儿有什么区别呢???- #!/usr/bin/ruby -w
- aR=[]
- aI =0
- DATA.each_line do |a|
- taR=a.split(/\s+/)
- isOK = false
- aR.each do |b|
- if b[0]==taR[0] && b[1]==taR[1] && b[2]==taR[2] && b[3]==taR[3]
- b[4] = b[4].to_i+taR[4].to_i
- isOK = true;
- #next
- break
- end
- aI+=1
- end
- aR<<taR if isOK==false
- end
- aR.each {|x|
- print x[0],?\t,x[1],?\t,x[2],?\t,x[3],?\t,x[4],?\n
- }
- puts aI
- __END__
- 1 20010201 100610 1.12 6000
- 1 20010201 100610 1.12 44000
- 1 20010201 100640 1.12 6000
- 2 20010201 100825 1.09 30000
- 2 20010201 100828 1.08 20000
- 2 20010201 100828 1.08 6000
- 1 20010202 100610 1.12 6000
- 1 20010202 100610 1.12 44000
- 2 20010202 100640 1.12 6000
- 3 20010202 100825 1.09 30000
- 3 20010202 100828 1.08 20000
- 3 20010202 100828 1.08 6000
复制代码 |
|