私はRubyを学ぶためにいくつかのオンライン実践上の問題を抱えていますが、私はこの問題を解決することができましたが、変数宣言の配置について理解していません。Ruby(初心者)の変数宣言の配置
idx2 while-loop内で "pair"(配列インデックスの合計)を宣言/定義すると、次のコードが機能するのはなぜですか?ただし、インデックス自体を宣言した直後にはできません。
def two_sum(nums)
idx=0
idx2=0
while idx<nums.length-1
idx2=idx+1
while idx2<nums.length
pair=nums[idx]+nums[idx2]
if pair==0
return [idx, idx2]
else
idx2+=1
end
end
idx+=1
end
end
上記のバージョンは機能しますが、以下の構造は機能しません。
def two_sum(nums)
idx=0
idx2=0
pair=nums[idx]+nums[idx2]
while idx<nums.length-1
idx2=idx+1
while idx2<nums.length
if pair==0
return [idx, idx2]
else
idx2+=1
end
end
idx+=1
end
end
誰かがこれに関する説明やエントリレベルのリソースを提供できる場合は、私は大いに感謝します。ありがとう。
編集:所望の出力に関するインデントや特異性の問題のため
申し訳ありません。私はこれに完全に新しく、時には詳細がスリップして、私はフィードバックを感謝します。ステップバイステップの論理的な実行をありがとう、それはまさに私が探していたものです。
「仕事」とはどういう意味ですか?予想される入出力値は何ですか? – fylooi
はインデントを修正するためにコードを編集しました。 2番目の例では、 'pair'変数は' while'の繰り返しごとに同じ値を持ちます。最初は、 'idx2'をインクリメントすることができるので変更できます。ニースユーザー名btw :) –