0

この方法が機能しない理由がわかりません。ifステートメントを渡す必要がある値を入力すると、機能しません。

def getBase
    puts "What is the base URL for the test?"
    x = gets
    if (x.include? 'http://') && ((x.split('.').at(x.split('.').length - 1).length) == 3)
      return x
    else
      puts "That is in the incorrect format."
      puts "Please format your url like this"
      puts "http://example.com"
      getBase
    end
end

「 http://test.com」を入力してください

結果: ステートメントが繰り返され、再帰を終了しません

4

2 に答える 2

2

入力を取得すると、最後getsに改行が含まれます\n(ユーザーがリターンを押したとき)。だからあなたxは実際には"http://test.com\n".

この使用を取り除くにはString#chomp

x = gets.chomp

それはそれを行う必要があります。

于 2013-06-12T23:23:50.027 に答える