1

基本はRailsコードですが、ここは純粋なRubyの問題です。ご存知のとおり、@test.source は' '(スペース) を含むことができる文字列です。目的は、最初に続く不要なスペースをすべて削除することです。たとえば、%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」) は無限です。なんで?

4

1 に答える 1

1

iwhile ループ内でインクリメントしていないため、while ループは指定された文字を常に比較し、先に進むことはありません' '

これを次のように変更します。

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

...しかしそれでも、コードにはまだ問題があります。これは、読者が残りの問題を確認するための演習です。:)

于 2013-03-07T03:08:37.460 に答える