无限'while'循环

时间:2013-03-07 03:04:37

标签: ruby

基本上它是Rails代码,但这里是纯Ruby问题。 要知道 - @ test.source是一些String,可以包含' '(空格)。目的是删除所有不必要的空间,这些空间首先会被删除。例如,%some word' '' '应该离开%some word' '%another word' '' '' '应该离开%another word' ',依此类推。

for i in 0...@test.source.length
      if @test.source[i] == ' '
          i=i+1
          while @test.source[i] == ' '
              @test.source[0...i].chop
          end
      else
          i+=1
      end
  end

由于某种原因,这个循环(显而易见'while')是无限的。为什么呢?

1 个答案:

答案 0 :(得分:1)

您不会在while循环中递增i,因此while循环将始终将指定的字符与' '进行比较,而不会继续前进。

将其更改为:

      <% while @test.source[i] == ' ' %>
          <% @test.source[0...i].chop %>
          <% i=i+1 %>
      <% end %>

...但即便如此,您的代码仍然存在问题。这是读者阅读剩余问题的练习。 :)