バブルソートを行うために次のコードを作成し、コードは正常に機能しました。私の質問はなぜ働いたのですか?メソッドが呼び出されると、コンピュータはまず$ xが0に等しいかどうか評価します。しかし、$ xに値を代入していないので、各ループを実行するには?このループはどのようにして条件をtrueまたはfalseに評価しますか?
xがグローバル変数であるという事実と関係しているようですが、どういうことがわかりません。提案してください!
def bubble_sort(arr)
while $x != 0
$x = 0
arr.each_with_index do |i, j|
if arr[j+1] != nil && i > arr[j+1]
arr[j], arr[j+1] = arr[j+1], arr[j]
$x += 1
end
end
end
arr
end
p bubble_sort([4,3,78,2,0,5,100,34])
グローバル変数である 'x'とは関係ありません。それは*あなたが*その変数を持っていることとは関係ありません。 – Makoto