私は数値を取って、奇数の周りにダッシュを入れた文字列を返そうとしています。また、文字列はダッシュで開始または終了してはいけません。なぜこのルビコードは何も返しませんか?
私は次のことを書いたが、それは何も返しません:
def dasherize_number(num)
string = num.to_s
i = 0
while i<string.length
if (string[i].to_i % 2) != 0
string[i] = '-' + string[i] + '-'
end
i += 1
end
if string[0] == '-'
string.pop(1)
end
if (string.length - 1) == '-'
string.pop(1)
end
string
end
私が正しく理解していればそれが無限ループしているように見えます。コンソールは出力を表示せず、リフレッシュしない限り何もすることができません。私はそれぞれのキャラクターでコードを見直しましたが、どこが間違っているのか分かりません。
著者が質問したとおり、このメソッドはコンソールで呼び出されました。 @ hac13下記の私の答えを見てください。問題は 'while'ループのようです。 – Uzbekjon
@Uzbekjon OPはどこでメソッドがコンソールで呼び出されたと言いますか? – sawa
私はメソッドが意味するものが何を意味するかはあまりよく分かりませんが、それが実行されていることを意味するならば 'dasherize_number(4567)'と入力してコンソールは私に多くのことを許可しません – hac13